Mam oświadczenie, które zawiera wiele sprawdzonych wyjątków. Mogę dodać wszystkie bloki catch dla nich wszystkich tak:Czy można przechwycić wszystkie wyjątki z wyjątkiem wyjątków czasu wykonywania?
try {
methodThrowingALotOfDifferentExceptions();
} catch(IOException ex) {
throw new MyCustomInitializationException("Class Resolver could not be initialized.", ex);
} catch(ClassCastException ex) {
throw new MyCustomInitializationException("Class Resolver could not be initialized.", ex);
} catch...
nie podoba mi się to, bo wszystkie są obsługiwane w ten sam sposób, więc nie jest rodzajem kodu powielania i jest tam również dużo kodu napisać. Zamiast mogła złapać Exception
:
try {
methodThrowingALotOfDifferentExceptions();
} catch(Exception ex) {
throw new MyCustomInitializationException("Class Resolver could not be initialized.", ex);
}
to byłoby ok, z wyjątkiem chcę wszystkie wyjątki środowiska wykonawczego do wyrzucenia bez przyłapania. Czy jest jakieś rozwiązanie tego problemu? Myślałem, że jakaś sprytna generyczna deklaracja typu wyjątku, który ma zostać złapany, może załatwić sprawę (a może nie).
Dobra odpowiedź ... +1 – Juvanis
+1 Fajna. Nie najczystsze, jakie kiedykolwiek widziałem, ale działa. – drasto