Try-catch-finally e depois novamente tentar
Eu sempre me deparei com situações como: -
try{
...
stmts
...
}
catch(Exception ex) {
...
stmts
...
} finally {
connection.close // throws an exception
}
que ainda precisa de um bloco try - catch por dentro.
Qual é a melhor prática para superar isso?