Co to jest blok catch?
Blok catch służy do przechwytywania i obsługi wyjątków, które wystąpiły w bloku try. To właśnie w catch definiuje się, co program ma zrobić po wykryciu błędu zamiast zakończyć działanie w niekontrolowany sposób.
Najczęściej catch występuje razem z try i opcjonalnie finally:
try {
int wynik = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("Wystąpił błąd: " + e.getMessage());
} finally {
System.out.println("Koniec operacji");
}
Rola poszczególnych elementów
try– zawiera kod, w którym może wystąpić wyjątekcatch– przechwytuje wyjątek i pozwala go obsłużyćfinally– wykonuje się niezależnie od tego, czy wyjątek wystąpiłthrow– służy do rzucania wyjątku, a nie do jego obsługi
Jak działa catch?
Jeżeli w bloku try pojawi się wyjątek, program przerywa wykonywanie dalszych instrukcji w try i przechodzi do pasującego bloku catch.
Przykład:
try {
String tekst = null;
System.out.println(tekst.length());
} catch (NullPointerException e) {
System.out.println("Próba użycia pustego obiektu");
}
Ważne zasady
catchmusi być powiązany ztry- można użyć wielu bloków
catchdla różnych typów wyjątków - należy przechwytywać możliwie konkretne wyjątki, np.
ArithmeticException, a nie od razu ogólnyException
Przykład wielu bloków:
try {
// kod
} catch (ArithmeticException e) {
System.out.println("Błąd arytmetyczny");
} catch (NullPointerException e) {
System.out.println("Błąd pustej referencji");
}
Na egzaminie
Jeśli pytanie brzmi, w której sekcji definiuje się obsługę wyjątku wygenerowanego przez aplikację, poprawną odpowiedzią jest catch, ponieważ to ten blok zawiera instrukcje reagujące na błąd.