Unutar try bloka se stavlja kod koji može izazvati iznimku(error).
Unutar catch bloka se stavlja kod za obradu izuzetka.
try
{
// blok koda za try
}
catch (Exception e)
{
// blok koda koji se nosi s errorima
}
U sljedećem primjeru će se desiti iznimka iz razloga što ćemo pokušati odabrati broj iz niza koji ne postoji(odabiremo deseti broj u nizu koji se sastoji od 5 elementa).
try
{
int[] brojevi = {1, 2, 3, 4, 5};
Console.WriteLine(brojevi[10]);
}
catch (Exception e)
{
Console.WriteLine(e.Message); // Ispisuje Index was outside the bounds of the array.
}
try
{
int[] brojevi = {1, 2, 3, 4, 5};
Console.WriteLine(brojevi[10]);
}
catch (Exception e) //Exception e nam nije ovdje potreban jer ga uopće ne koristimo
{
int[] brojevi = { 1, 2, 3, 4, 5 };
Console.WriteLine(brojevi[3]); // Ispisuje 4
}
Finally izvršava blok koda neovisno o rezultatu.
try
{
int[] brojevi = {1, 2, 3, 4, 5};
Console.WriteLine(brojevi[10]);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.WriteLine("Dovršena provjera.");
}
/*
Ispisuje:
Index was outside the bounds of the array.
Dovršena provjera.
*/
try
{
int[] brojevi = {1, 2, 3, 4, 5};
Console.WriteLine(brojevi[0]);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.WriteLine("Dovršena provjera.");
}
/*
Ispisuje:
1
Dovršena provjera.
*/
Throw nam omogućuje da stvorimo vlastiti error.
static void provjeraGodine(int godina)
{
if (godina < 18)
{
throw new ArithmeticException("Pogreška u sistemu, nisi punoljetan.");
}
else
{
Console.WriteLine("Punoljetan si.");
}
}
static void Main(string[] args)
{
provjeraGodine(17);
//Ispisuje System.ArithmeticException: 'Pogreška u sistemu, nisi punoljetan.'
}
static void provjeraGodine(int godina)
{
if (godina < 18)
{
throw new ArithmeticException("Pogreška u sistemu, nisi punoljetan.");
}
else
{
Console.WriteLine("Punoljetan si.");
}
}
static void Main(string[] args)
{
provjeraGodine(21);
//Ispisuje Punoljetan si.
}