INF.04Języki i Składnia Programowania
Obsługa wyjątków: try, catch, throw, finally
Mechanizm sterowania przepływem programu w sytuacjach awaryjnych (błędach czasu wykonania) przy użyciu bloków try, catch (przechwytywanie), throw (rzucanie) i finally (zwalnianie zasobów).
Struktura obsługi wyjątków
Wyjątek (Exception) to obiekt reprezentujący błąd czasu wykonania (np. dzielenie przez zero DivideByZeroException, brak pliku FileNotFoundException, odwołanie do null NullReferenceException).
Słowa kluczowe i ich role:
try: Blok kodu, w którym może wystąpić błąd czasu wykonania.catch (TypWyjatku ex): Blok przechwytujący i obsługujący błąd o określonym typie.throw: Instrukcja jawnego rzucenia (zgłoszenia) nowego wyjątku (throw new ArgumentException("Niepoprawny wiek");).finally: Blok kodu, który zawsze się wykona, niezależnie od tego, czy wystąpił błąd, czy funkcja zakończyła się poprawnie, a nawet czy w blokutry/catchwykonanoreturn. Służy do zamykania plików, połączeń bazodanowych i zwalniania zasobów.
CSHARP
FileStream plik = null;
try {
plik = File.OpenRead("dane.txt");
// operacje na pliku
} catch (FileNotFoundException ex) {
Console.WriteLine($"Brak pliku: {ex.Message}");
} catch (Exception ex) {
Console.WriteLine($"Nieznany błąd: {ex.Message}");
} finally {
// Blok finally wykona się ZAWSZE!
if (plik != null) plik.Close();
}Pułapki na egzaminie INF.04:
- Blok
finallywykonuje się ZAWSZE, bez względu na to, czy w blokutrywystąpił wyjątek, czy nie.
Chcesz sprawdzić to pojęcie w praktyce?
Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Obsługa wyjątków: try, catch, throw, finally lub rozpocznij trening.