В чем разница между
try {
fooBar();
} finally {
barFoo();
}
а также
try {
fooBar();
} catch(Throwable throwable) {
barFoo(throwable); // Does something with throwable, logs it, or handles it.
}
Мне больше нравится вторая версия, потому что она дает мне доступ к Throwable. Есть ли какое-либо логическое различие или предпочтительное соглашение между двумя вариантами?
Кроме того, есть ли способ получить доступ к исключению из предложения finally?
Throwable
изfinally
блока, потому что не может бытьThrowable
.