Megosztás a következőn keresztül:


Kivétel kezelése kipróbálás/fogás használatával

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.