Obsługa wyjątków
Obsługa wyjątków jest ważnym aspektem programowania w języku C#, ponieważ pozwala na zapobieganie zatrzymaniu programu i umożliwia jego dalsze działanie po wystąpieniu błędu. Istnieją dwa sposoby obsługi wyjątków: przez ręczne rzucanie i przez obsługę automatyczną.
Ręczne rzucanie wyjątków polega na rzucaniu wyjątku za pomocą słowa kluczowego
throw
w momencie, gdy wykryty zostanie błąd. Na przykład:
if (imie == null)
{
throw new ArgumentException("Nazwa nie może być null");
}
Automatyczna obsługa wyjątków polega na stosowaniu instrukcji try-catch-finally do obsługi wyjątków. Kod znajdujący się w bloku try jest wykonywany i jeśli wystąpi wyjątek, to jest on przechwytywany przez odpowiedni blok catch. Kod znajdujący się w bloku finally jest zawsze wykonywany, niezależnie od tego, czy wyjątek został rzucony czy nie.
try
{
// Kod, w którym mogą wystąpić wyjątki
int result = Divide(10, 0);
}
catch (MyException ex)
{
// Obsługa wyjątku MyException
Console.WriteLine("Wystąpił błąd: " + ex.Message);
}
catch (DivideByZeroException ex)
{
// Obsługa wyjątku DivideByZeroException
Console.WriteLine("Nie można dzielić przez zero");
}
catch (Exception ex)
{
// Obsługa pozostałych wyjątków
Console.WriteLine("Wystąpił nieznany błąd");
}
finally
{
// Kod, który zawsze jest wykonywany, niezależnie od tego, czy wyjątek został rzucony czy nie
Console.WriteLine("Koniec programu");
}
Jak widzisz, obsługa wyjątków pozwala na kontrolowanie błędów i zapewnia, że program jest w stanie kontynuować działanie po wystąpieniu błędu, zamiast zatrzymać się całkowicie. Dzięki temu możemy zarządzać błędami w odpowiedni sposób i dostosowywać komunikaty błędu do konkretnej sytuacji.