Sdílet prostřednictvím


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

Další zdroje

Základy zpracování výjimek