Ci sono molti scenari in sviluppo di applicazioni enterprise in cui si usa RuntimeException invece di eccezione, in seguito sono due scenari che sono abbastanza comuni:
- Mentre attuazione gestione delle eccezioni come un aspetto (che separa la principale preoccupazione di progettazione), nella maggior parte dei framework di oggi si dichiarano le eccezioni di handle e si associano specifici blocchi di gestione delle eccezioni piuttosto che gli stessi hardcoding. Un buon esempio di questo è il modello JDBC in Spring che converte tutte le eccezioni SQL in RuntimeException in modo che lo sviluppatore non scriva try catch blocks durante la scrittura della logica di accesso ai dati. è possibile definire in modo dichiarativo il gestore di eccezioni che può fornire un comportamento diverso in dev env. e diversi comportamenti nella produzione. Implementazione simile è presente anche nella classe Action di Struts 1.x, in cui il metodo execute viene dichiarato per generare Exception e c'è un ExceptionHandler separato mappato in struts-config per la gestione di eccezioni specifiche. Anche se questo non è un esempio di RuntimeException, ma il principio di progettazione è lo stesso per separare la preoccupazione della normale esecuzione e della gestione delle eccezioni.
- Un altro uso di RuntimeException è in EJB e in altri Gestori transazioni in cui nelle transazioni sono controllati per container. In tali contenitori per convenzione se si lancia RuntimeException dal codice della transazione avrebbe rollback - lo stesso non sarebbe accaduto se si getta Eccezione
Questi sono 2 scenari che vengono subito in mente ci sarebbero altri scenari di- corso.
fonte
2010-11-20 16:51:20
Duplicato http://stackoverflow.com/questions/499437/in-java-when-should-i-create-a-checked-exception-and-when-should-it-be-a-runtim –