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.
När ett undantag inträffar stoppas körningen och kontrollen ges till lämplig undantagshanterare. Det innebär ofta att kodrader som du förväntar dig ska köras kringgås. En del resursrensning, till exempel att stänga en fil, måste göras även om ett undantag utlöses. För att göra detta kan du använda ett finally block. Ett finally block körs alltid, oavsett om ett undantag utlöses.
I följande kodexempel används ett try/catch block för att fånga en .ArgumentOutOfRangeException Metoden Main skapar två matriser och försöker kopiera en till den andra. Åtgärden genererar en ArgumentOutOfRangeException eftersom length anges som -1 och felet skrivs till konsolen. Blocket finally körs oavsett resultatet av kopieringsåtgärden.
class ArgumentOutOfRangeExample
{
public static void Main()
{
int[] array1 = {0, 0};
int[] array2 = {0, 0};
try
{
Array.Copy(array1, array2, -1);
}
catch (ArgumentOutOfRangeException e)
{
Console.WriteLine($"Error: {e}");
throw;
}
finally
{
Console.WriteLine("This statement is always executed.");
}
}
}
Class ArgumentOutOfRangeExample
Public Shared Sub Main()
Dim array1() As Integer = {0, 0}
Dim array2() As Integer = {0, 0}
Try
Array.Copy(array1, array2, -1)
Catch e As ArgumentOutOfRangeException
Console.WriteLine("Error: {0}", e)
Throw
Finally
Console.WriteLine("This statement is always executed.")
End Try
End Sub
End Class