Edes tietokone ei voi jakaa nollalla. Siksipä seuraava koodi aiheuttaa virheen
int luku1 = 1, luku2 = 0;
int osamaara = luku1 / luku2;
Console.WriteLine(osamaara);
Ja tuloksena olisi jotain seuraavaa
int luku1 = 1, luku2 = 0, osamaara = 0;
try
{
osamaara = luku1 / luku2;
Console.WriteLine(osamaara);
}
catch (Exception ex)
{
Console.WriteLine("Jakolaskua ei voitu suorittaa tuntemattoman virheen takia: " + ex.Message);
}
Catch-lohkoja voi laittaa useampia, jolloin jokainen niistä voi poimia tietyn tyyppisen virheen. Lisäksi viimeiseksi voi laittaa finally-lohkon, jonne laitetaan toimenpiteet, jotka pitäisi tehdä riippumatta siitä onnistuiko try-lohkon suoritus vai eikö.
int luku1 = 1, luku2 = 0, osamaara = 0;
try
{
osamaara = luku1 / luku2;
Console.WriteLine(osamaara);
}
// nollallajako-poikkeus
catch (DivideByZeroException)
{
Console.WriteLine("Jakolaskua ei voitu suorittaa, koska jakaja oli nolla");
}
// kaikki muut poikkeukset
catch (Exception ex)
{
Console.WriteLine("Jakolaskua ei voitu suorittaa tuntemattoman virheen takia: " + ex.Message);
}
// suoritetaan lopuksi
finally
{
Console.WriteLine("Jakolasku on yritetty suorittaa");
}