Kontrola řešení výzvy try-catch
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.