Wyjątek to sytuacja, w której program nie może zostać skompilowany z powodu wystąpienia w nim błędu (np.: złej składni, braku połączenia z serwerem, nie istniejącego pliku itd). Domyślnie Java wyświetla komunikaty o błędach, ale możemy sami przewidzieć niektóre sytuacje i im zapobiegać poprzez obsługę wyjątków.
Aby obsłużyć wyjątek stosuje się blok instrukcji try … catch:
1 2 3 4 5 6 7 8 9 |
try { // kod programu ... } catch (Exception ex) { // komunikat o błędzie lub obsługa wyjątku ... } |
Dla przykładu napiszmy prosty programik do obliczania ilorazu liczb całkowitych. Z lekcji matematyki pamiętamy, że liczby nie można dzielić przez 0 i taki wyjątek zostanie zgłoszony w sytuacji podania przez użytkownika błędnego argumentu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public class Wyjatki { public int iloraz(int a, int b) { // oblicza iloraz dwóch liczb całkowitych return a/b; } public static void main(String args[]) { try // obsługa wyjątku { Wyjatki w = new Wyjatki(); System.out.println(w.iloraz(10,0)); // podstawiamy argumenty: 10 i 0 } catch (Exception ex) { System.out.println("Wprowadź poprawny dzielnik!"); } } } |
Sprawdź działanie programu podstawiając różne wartości.
Do bloków try oraz catch można dołożyć blok finalny deklarowany poprzez słowo kluczowe finally. Blok finalny wykona się niezależnie od tego, czy wyjątek wystąpi czy też nie.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
public class Wyjatki { public int iloraz(int a, int b) { return a/b; } public static void main(String args[]) { try { Wyjatki w = new Wyjatki(); System.out.println(w.iloraz(10,0)); } catch (Exception ex) { System.out.println("Wprowadź poprawny dzielnik!"); } finally { System.out.println("Kod finalny"); } } } /* Wyświetli: Wprowadź poprawny dzielnik! Kod finalny */ |
Czytaj dalej: ZAPIS I ODCZYT OBIEKTÓW →