Obsługa wielu wyjątków w jednym bloku
Łap wiele typów wyjątków w jednym bloku catch.
Porównanie kodu
✕ Pre-Java 7
try {
process();
} catch (IOException e) {
log(e);
} catch (SQLException e) {
log(e);
} catch (ParseException e) {
log(e);
}
✓ Java 7+
try {
process();
} catch (IOException
| SQLException
| ParseException e) {
log(e);
}
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
DRY
Ta sama logika obsługi napisana raz zamiast trzech razy.
Możliwość ponownego rzucenia
Złapany wyjątek może być ponownie rzucony ze swoim precyzyjnym typem.
Czytelny
Wszystkie obsługiwane typy widoczne w jednym miejscu.
Stare podejście
Oddzielne bloki catch
Nowoczesne podejście
Multi-catch
Od JDK
7
Poziom trudności
Początkujący
Wsparcie JDK
Obsługa wielu wyjątków w jednym bloku
Dostępne
Szeroko dostępne od JDK 7 (lipiec 2011)
Jak to działa
Multi-catch obsługuje wiele typów wyjątków tym samym kodem. Zmienna wyjątku jest efektywnie finalna, więc można ją ponownie rzucić bez opakowywania.
Powiązana dokumentacja
Dowód