Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Když dojde k výjimce, spuštění se zastaví a kontrolu nad programem převezme příslušný zpracovatel výjimky. To často znamená, že řádky kódu, které očekáváte, budou vynechána. Některé vyčištění prostředků, jako je zavření souboru, je potřeba provést i v případě, že dojde k výjimce. K tomu můžete použít finally blok. Blok finally se vždy spustí, bez ohledu na to, zda je vyvolána výjimka.
Následující příklad kódu používá try/catch blok k zachycení ArgumentOutOfRangeException. Metoda Main vytvoří dvě pole a pokusí se zkopírovat jedno do druhého. Akce vygeneruje ArgumentOutOfRangeException protože length je zadána jako -1 a chyba se zapíše do konzoly. Blok finally se spustí bez ohledu na výsledek akce kopírování.
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