Trzecia część dotycząca obsługi wyjątków w "CSharpie" prezentować będzie jak łatwo oraz po co w ogóle (i w szczególe :P) możecie wykorzystać tworzenie własnego wyjątku w języku C#. Nie chodzi mi o tworzenie zgłoszeń wyjątków, nie. To już było. Chodzi mi o tworzenie własnych TYPÓW wyjątków :O!
Tweet |
TWORZENIE WŁASNEGO WYJĄTKU W JĘZYKU C# WYKONASZ TĄ SAMĄ METODĄ
Dla Waszej wiadomości. Utworzenie własnego typu wyjątku realizowane jest bardzo łatwo na mocy dziedziczenia i wykorzystaniu klasy potomnej. Tak, idziecie tą samą drogą jaką Wam przekazałem w jednym z poprzednich materiałów :).
MOŻLIWOŚCI JEST KILKA!
Kiedy macie w głowie myśl stworzenia własnego typu wyjątku, korzystacie ze słowa "class" i jedziecie z koksem :D:
class MyException : Exception
{
}
To jest najprostsza forma. Nie wnosi niczego pożytecznego, ale to już jest w pełni interaktywna klasa, która "posiada uprawnienia" do nazywania siebie wyjątkiem (można wstawić ten typ do bloków "catch" i zgłaszać wyjątki przy jego użyciu). Aby uczynić ją trochę bardziej wartościową, można wprowadzić konstruktor i najlepiej żeby odwołał się do konstruktora klasy bazowej. Gdy wstawimy do nawiasów łańcuch znaków w postaci parametru aktualnego:
class MyException : Exception
{
public MyException():base("Mój wyjątek")
{
}
}
nadamy własną treść komunikatu jaki zostanie przywołany przez poprzednio wspomnianą właściwość "Message" oraz metodę "ToString":
try
{
throw new MyException();
}
catch (MyException me)
{
Console.WriteLine(me.Message);
Console.WriteLine(me.ToString());
}
DOWOLNY WŁASNY KOMUNIKAT
Jesteście w stanie również wykorzystać możliwość osadzenia parametru formalnego wewnątrz konstruktora naszego wyjątku, przekazać go do konstruktora klasy bazowej i w ten sposób utorować sobie drogę do podawania takiego komunikatu, jakiego sobie życzycie, w miejsce tworzenia instancji :). Tworzenie własnego wyjątku w języku C# pozwala na każdy "szacher-macher" jaki przejdzie w innych klasach potomnych:
TREŚĆ KLASY
class MyException : Exception
{
public MyException(string message):base(message)
{
}
}
ZGŁASZANIE I PRZECHWYTYWANIE WYJĄTKU
try
{
throw new MyException("Mój wyjątek");
}
catch (MyException me)
{
Console.WriteLine(me.Message);
Console.WriteLine(me.ToString());
}
Tworzenie własnego wyjątku w języku C# nie różni się absolutnie niczym od klasycznego dziedziczenia. Jedyne co wystarczy to klasa potomna i dziedziczenie od "Exception".
Nie pytam się nikogo o potencjalne zastosowania. Mnie zależy wyłącznie na przekazaniu prawdy o istnieniu takiej możliwości. Resztę zostawiam Wam, czytelnicy ;)! Przed Wami ostatnia część na temat obsługi wyjątków w C# jaka ukaże się w następnym materiale.