Gennemse løsningen for at få en prøveudfordring

Fuldført

Følgende kode er en mulig løsning på udfordringen fra det forrige undermodul:

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);
}

I denne løsning Process1 er metoden blevet opdateret til at bruge mønsteret try-catch . Metoden WriteMessage kaldes i try kodeblokken, som gør det muligt Process1 at fange undtagelsen, før den registreres af delsætningen catch i sætninger på øverste niveau.

Hvis du kører dette program, genereres det påkrævede output:

∞
Exception caught in Process1
Exit program

Bemærk, at da undtagelsen er fanget i Process1, catch udføres kodeblokken i sætningerne på øverste niveau ikke. De fordele, der opnås ved at fange undtagelser på forskellige niveauer i opkaldsstakken, bliver tydeligere, når bestemte undtagelsestyper fanges. Du skal undersøge undtagelsestyper i det næste undermodul.

Hvis du lykkedes med denne udfordring, tillykke! Fortsæt til næste undermodul.

Vigtig

Hvis du havde problemer med at fuldføre denne udfordring, skulle du måske gennemse de tidligere enheder, før du fortsætter.