Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A try-catch blokk célja egy munkakód által létrehozott kivétel elfogása és kezelése. Bizonyos kivételeket blokkokban catch lehet kezelni, és a problémát a kivétel újbóli létrehozása nélkül is meg lehet oldani; azonban gyakrabban az egyetlen dolog, amit tehet, hogy meggyőződjön arról, hogy a megfelelő kivételt dobja ki.
Példa
Ebben a példában IndexOutOfRangeException nem ez a legmegfelelőbb kivétel: ArgumentOutOfRangeException több értelme van a metódusnak, mert a hibát a index hívó által átadott argumentum okozza.
static int GetInt(int[] array, int index)
{
try
{
return array[index];
}
catch (IndexOutOfRangeException e) // CS0168
{
Console.WriteLine(e.Message);
// Set IndexOutOfRangeException to the new exception's InnerException.
throw new ArgumentOutOfRangeException("index parameter is out of range.", e);
}
}
Megjegyzések
A kivételt okozó kód a blokkban try található. A rendszer közvetlenül utána hozzáad egy catch utasítást a kezeléshez IndexOutOfRangeException, ha előfordul. A catch blokk kezeli a IndexOutOfRangeException és dobja a megfelelőbb ArgumentOutOfRangeException helyett. Annak érdekében, hogy a hívó a lehető legtöbb információval rendelkezhessen, fontolja meg az eredeti kivétel megadását az InnerException új kivételként. Mivel a InnerException tulajdonság írásvédett, hozzá kell rendelnie az új kivétel konstruktorához.