Kontrola řešení výzvy try-catch

Dokončeno

Následující kód je jedním z možných řešení úkolu z předchozí lekce:

try
{
    Process1();
}
catch
{
    Console.WriteLine("An exception has occurred");
}

Console.WriteLine("Exit program");

static void Process1()
{
    try
    {
        WriteMessage();
    }
    catch
    {
        Console.WriteLine("Exception caught in Process1");
    }

}

static void WriteMessage()
{
    double float1 = 3000.0;
    double float2 = 0.0;
    int number1 = 3000;
    int number2 = 0;

    Console.WriteLine(float1 / float2);
    Console.WriteLine(number1 / number2);
}

V tomto řešení byla metoda Process1 aktualizována, aby používala vzor try-catch. Metoda WriteMessage je volána v try bloku kódu, který umožňuje Process1 zachytit výjimku předtím, než je zachycena klauzulí catch v příkazech nejvyšší úrovně.

Spuštění této aplikace vygeneruje požadovaný výstup:

∞
Exception caught in Process1
Exit program

Všimněte si, že vzhledem k tomu, že výjimka je zachycena uvnitř Process1, catch blok kódu v příkazech nejvyšší úrovně se nespustí. Výhody získané zachycením výjimek na různých úrovních zásobníku volání se stávají zřetelnějšími, když jsou zachycovány specifické typy výjimek. Typy výjimek prozkoumáte v další lekci.

Pokud jste v této výzvě uspěli, blahopřejeme! Pokračujte k další jednotce.

Důležité

Pokud jste měli potíže s dokončením této výzvy, měli byste si před pokračováním projít předchozí lekce.