Est un bloc finally sans un bloc catch java anti-modèle?

J'ai juste eu un assez douloureux de dépannage de l'expérience dans la résolution de certains de code qui ressemble à ceci:

try {
   doSomeStuff()
   doMore()
} finally {
   doSomeOtherStuff()
}

Le problème est difficile à résoudre car doSomeStuff() a lancé une exception, qui à leur tour causé doSomeOtherStuff() de lancer une exception. La deuxième exception (lancée par le bloc finally) a été levée à la hauteur de mon code, mais il n'a pas une poignée sur la première exception (jeté de doSomeStuff()), qui a été la véritable cause du problème.

Si le code avait dit ceci au lieu de cela, le problème aurait été évident:

try {
    doSomeStuff()
    doMore()
} catch (Exception e) {
    log.error(e);
} finally {
   doSomeOtherStuff()
}

Donc, ma question est: est-ce

Est un bloc finally utilisé sans aucun bloc catch bien connu java anti-modèle? (Il semble être un non-facilement-apparente sous-classe de la évidemment bien connu d'anti-modèle "Ne pas avaler des exceptions!")

InformationsquelleAutor Jared | 2009-03-02