Buona documentazione su "Evita di catturare Throughble", nel contesto di Weblogic Server
Domanda
Attualmente sto refactoring di una base di codice esistente (EJBS) per strappare tutti i blocchi in cui un tiraiobile viene catturato all'interno dell'EJB.
try {
... do some business logic
} catch(Throwable t){
... log and swallow ... :-(
}
Voglio/bisogno di convincere le persone intorno a me con una corretta documentazione che "catturare tipicabile" è un no-go per un EJB (abbiamo molte discussioni su questo). WebLogic gestirà tutte le condizioni di "errore" e forse invaliderà gli EJB e metteranno gli EJB freschi (funzionanti) nel pool. Catturare Throwlable minerebbe tutte queste reti di sicurezza fornite da Weblogic, e catturare è una cattiva pratica comunque (ma le persone qui sono riluttanti e usano il martello "lanciabile" ovunque).
Chiunque sia in grado di indicarmi alcuni documenti online in cui questo comportamento è spiegato (per WebLogic, JBoss, ecc.). Ho cercato tramite Google e ho dato un'occhiata ai documenti Weblogic ma non sono stato in grado di trovare nulla, solo generico dottore Java.
Soluzione
Dicono che la prova è nel budino.
Scrivi un piccolo esempio che non fa altro che lanciare diversi tipi di eccezioni (runtime, errori) e dimostra che il tuo contenitore li gestisce con grazia.
Questo fermerà i critici morti nelle loro tracce.
Altri suggerimenti
Acquista una copia di Efficace Java, seconda edizione di Joshua Bloch Per ogni membro della tua squadra.
Chiedi a tutti di leggere il capitolo 9, "Eccezioni", che copre:
- "Usa le eccezioni solo per condizioni eccezionali"
- "Usa le eccezioni controllate per condizioni recuperabili e le eccezioni di runtime per gli errori di programmazione"
- "Evita l'uso inutile delle eccezioni controllate"
- "Favorire l'uso di eccezioni standard"
- "Lancia le eccezioni appropriate all'astrazione"
- "Documenta tutte le eccezioni lanciate con ogni metodo"
- "Includi le informazioni di fallimento nei messaggi dettagliati"
- "Lotta per l'atomicità del fallimento"
- "Non ignorare le eccezioni"