Cuál es la diferencia entre
try {
fooBar();
} finally {
barFoo();
}
y
try {
fooBar();
} catch(Throwable throwable) {
barFoo(throwable); // Does something with throwable, logs it, or handles it.
}
Me gusta más la segunda versión porque me da acceso al Throwable. ¿Existe alguna diferencia lógica o una convención preferida entre las dos variaciones?
Además, ¿hay alguna forma de acceder a la excepción desde la cláusula finalmente?
Throwable
desde elfinally
bloque, porque es posible que no haya unThrowable
.