Postupy: Použití bloku Finally.
Pokud dojde k výjimce, zastaví provádění a řízení je uveden nejbližší zpracování výjimek. To často znamená řádky kódu, které očekáváte vždy nazývá nebudou provedeny. Některé zdroje Vyčištění disku, zavřením souboru, musí být provedeny vždy, i když je výjimka. K tomu můžete použít blok. A konečně bloku je spuštěn vždy, bez ohledu na to, zda je vyvolána výjimka.
Následující příklad kódu používá blok try/catch k zachycení ArgumentOutOfRangeException. Main Metoda vytvoří dvou matic a pokusí se jej zkopírovat do druhé. Generuje akce ArgumentOutOfRangeException a chyba je zapsána do konzoly. Nakonec provede bez ohledu na výsledek akce kopírování bloku.
Příklad
Imports System
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)
Finally
Console.WriteLine("This statement is always executed.")
End Try
End Sub
End Class
using System;
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: {0}", e);
}
finally
{
Console.WriteLine("This statement is always executed.");
}
}
}
using namespace System;
ref class ArgumentOutOfRangeExample
{
public:
static void Main()
{
array<int>^ array1 = {0, 0};
array<int>^ array2 = {0, 0};
try
{
Array::Copy(array1, array2, -1);
}
catch (ArgumentOutOfRangeException^ e)
{
Console::WriteLine("Error: {0}", e);
}
finally
{
Console::WriteLine("This statement is always executed.");
}
}
};
int main()
{
ArgumentOutOfRangeExample::Main();
}
Viz také
Úkoly
Postupy: Použití bloku Try/Catch pro zachycení výjimek
Postupy: Explicitně vyvolané výjimky
Postupy: Vytvořit uživatelem definované výjimky