Rzucanie wyjątków
darek963
Do zrozumienia artykułu wymagana jest znajomość zagadnienia obsługi wyjątków.
Podczas programowania napotykamy takie miejsca w kodzie, w których zachodzi potrzeba wygenerowania własnego wyjątku (ang. exception) do kodu wywołującego. Rzucanie własnych wyjątków jest bardzo dobrą praktyką ułatwiającą debugowanie programu. Jest również przydatne podczas tworzenia dynamicznie dołączanych bibliotek (DLL). W aplikacji wywołującej metodę z pliku DLL można w łatwy sposób przechwycić i obsłużyć wygenerowany wyjątek.
Aby rzucić wyjątek, w pierwszej kolejności należy go zadeklarować i zainicjować:
Exception nazwaWyjatku;
nazwaWyjatku = new Exception("Tutaj opisz błąd.");
Można to zrobić również w jednej linii:
Exception nazwaWyjatku = new Exception("Tutaj opisz błąd.");
Teraz mamy już stworzoną instancję wyjątku, który możemy w każdym momencie rzucić. Służy do tego słowo kluczowe Throw:
throw nazwaWyjatku;
Przykład
Poniższy program (aplikacja konsolowa) pokazuje przykład rzucania własnego wyjątku i jego obsługę:using System;
namespace AplikacjaKonsolowa
{
class Program
{
static void Main(string[] args)
{
try
// <tu wystapi wyjatek rzucony w metodzie dodajLiczbyMniejszeOdPieciu()>
{
Console.WriteLine("6 + 1 = " + Obliczenia.dodajLiczbyMniejszeOdPieciu(6, 1));
}
// </tu wystapi wyjatek rzucony w metodzie dodajLiczbyMniejszeOdPieciu()>
catch (Exception wyjatek)
// <obsluga wygenerowanego wyjatku>
{
// wyswietlamy komunikat bledu w konsoli
Console.WriteLine(wyjatek.ToString());
}
// </obsluga wygenerowanego wyjatku>
Console.ReadKey();
}
}
class Obliczenia
{
public static int dodajLiczbyMniejszeOdPieciu(int liczba1, int liczba2)
{
if (liczba1 < 5 && liczba2 < 5)
{
return liczba1 + liczba2;
}
else
{
// <tworzenie nowego wyjatku>
Exception eZleArgumentyMetody;
eZleArgumentyMetody = new Exception("Metoda dodajLiczbyMniejszeOdPieciu() dodaje tylko liczby mniejsze od 5.");
// </tworzenie nowego wyjatku>
// <rzucanie wyjatku>
throw eZleArgumentyMetody;
// </rzucanie wyjatku>
}
}
}
}
Zobacz też: