que - todas las excepciones en java
¿Cuál es la forma correcta de manejar la excepción dentro de la devolución de llamada? (3)
Tengo una devolución de llamada con una instancia de excepción. Actualmente lo manejo de esta manera, pero creo que hay una mejor manera. Me gustaría escuchar algún comentario de un experto en Java. =)
...
onError(Exception e) {
if (e instanceof IOException) {
ioe = (IOException)e;
// do smth with ioe
} else if (e instanceof MyException) {
mye = (MyException)e;
// do smth with mye
}
}
...
Bueno, puedes probar con múltiples bloques de captura, cada bloque de catch se enfrenta a una excepción más estrecha que la que está detrás de él, de esta manera ya no necesitas el código de la placa de la caldera con el ifs:
try {
doSomething();
} catch(IOException ioe) {
log.error("File not found"+ioe.getmessage();
} catch(Exception e) {
//... etc
}
No estoy 100% seguro de lo que quiere decir con "manejar excepciones dentro de devolución de llamada", pero el método onError
que proporcionó podría expresarse mejor así:
...
onError(Exception e) {
try {
throw e;
} catch (IOException ioe) {
// do smth with ioe
} catch (MyException mye) {
// do smth with mye
}
}
...
Creo que puede anular "onError" con subclases de excepciones:
interface MyExceptionHandler
{
onError(Exception e) {
// Default exception
}
onError(IOException ioe) {
// do smth with ioe
}
onError(MyException mye) {
// do smth with mye
}
}