Si supponga che questo pezzo di codice è in 20 posti e sempre la stessaintercettare le eccezioni separati o utilizzare instanceof - Java 6
try {
// do something
} catch (FirstException e) {
// log it
} catch (SecondException e) {
// log it
}
Non sarebbe meglio usare qualcosa come questo o instanceof
non è buona soluzione?
try {
// do something
} catch(Exception e) {
logException(e);
}
void logException(Exception e) {
if (e instanceof FirstException) {
// log it
} else if (e instanceof SecondException) {
// log it differently
} else {
// do something with other exception
}
}
L'unica cosa che ho davvero odio la soluzione è la cattura di Exception
che non è il modo migliore definitelly ... C'è un modo migliore?
Vorrei utilizzare il primo approccio e chiamare logException per tutte le eccezioni rilevate. – Thihara
Cosa accadrebbe se si lanciava 'FileNotFoundException !!! – Azodious
Rilevare separatamente ogni eccezione ha senso solo quando si intende eseguire un'elaborazione diversa per ciascuna. Nelle applicazioni del mondo reale, questo è raramente il caso. L'approccio fattibile è quello di catturare tutti usando la superclasse 'Exception' o' Throwable' se gli errori di runtime sono un problema serio e ** li registrano correttamente in modo da avere senso allo sviluppatore dove e cosa è successo realmente. – Vrushank