Pourquoi jeter un EJBException est un “recommandé” la pratique?

Je reçois cette "suggestion" de nombreux collègues développeurs et plus encore. Dans mon expérience, j'ai constaté que EJBExceptions sont bien adaptés à une "fin du monde" à partir de l'exemple d'haricot point de vue (comme quand quelque chose est tellement mauvais que le haricot instance ne peut pas récupérer par lui-même). Si une instance peut récupérer, je pense que c'est mieux de jeter une exception d'application.

Voici le modèle que j'ai rencontrer encore et encore:

privé SomeResource des ressources; 
d'ejbcreate: 
ressource = allocateResource(...); 

omMessage: 
try { 
... 
} catch (JMSException e) { 
throw new EJBException(e); 
} 

ejbRemove: 
freeResource(ressource); 

À mon humble avis c'est un antipattern qui provoque des fuites de ressource.

MODIFIER: en particulier, la spécification EJB dit que si un haricot, déclenche une exception d'exécution (et EJBException est une exception runtime) à partir de la méthode des affaires, puis le haricot est rejeté sans appel ejbRemove.

Est-ce un exemple pertinent à l'encontre de jeter un EJBException?
Quels sont les cas lorsque EJBException doivent être jetés?

J'ai ajouté l'explication de votre commentaire sur mon (maintenant supprimé) "répondre".

OriginalL'auteur vinny_g | 2009-10-17