Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Syftet med ett try-catch-block är att fånga och hantera ett undantag som genereras av fungerande kod. Vissa undantag kan hanteras i ett catch block och problemet löses utan att undantaget återaktiveras. Men oftast är det enda du kan göra att se till att rätt undantag utlöses.
Exempel
I det här exemplet IndexOutOfRangeException är inte det lämpligaste undantaget: ArgumentOutOfRangeException är mer meningsfullt för metoden eftersom felet orsakas av argumentet index som skickas in av anroparen.
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);
    }
}
Kommentarer
Koden som orsakar ett undantag omges av try blocket. En catch instruktion läggs till omedelbart efter den för att hantera IndexOutOfRangeException, om den inträffar. Blocket catch hanterar IndexOutOfRangeException och genererar det lämpligare ArgumentOutOfRangeException i stället. För att ge anroparen så mycket information som möjligt kan du överväga att ange det ursprungliga undantaget som det InnerException nya undantaget. Eftersom egenskapen InnerException är skrivskyddad måste du tilldela den i konstruktorn för det nya undantaget.