Le eccezioni non rilevate riguardano la gestione dei problemi esterni, le eccezioni rilevate per interni
In generale, le eccezioni rilevate (nel blocco try-catch-finally
) riguardano problemi a cui l'applicazione può fare qualcosa. Le eccezioni Uncaught, o runtime, sono per problemi che non rientrano nell'ambito della tua applicazione per risolvere da solo (puntatore nullo, errore di connessione al database e così via). In genere un'eccezione di runtime indica un punto debole del sistema che un amministratore o uno sviluppatore deve affrontare.
Quando scegliere un'eccezione non rilevata
Scegli un'eccezione di runtime quando sai che nessuno più in alto nello stack delle chiamate sarà in grado di recuperare senza un nuovo tentativo.
"The database connection is borked.
This application is not going to be
able to restart it since it'll have
been provided by JNDI. This
application should stop attempting
database access right now."
Quando scegliere un'eccezione catturata
Scegli un'eccezione rilevata quando sai che il ripristino è possibile con un po 'di manipolazione dei dati dal chiamante.
"Hey, I got a ParseException, guess
I'll add in the time field since it
was missing. Should've checked that
beforehand..."
Nel complesso, cerca di mantenere le eccezioni ben definite già nella lingua (meno codice da condividere e spiegare). Capire perché sono presi o non catturati. Se devi assolutamente creare la tua eccezione, prova a mantenere basso il numero di variazioni e a renderti utile nel riportare esattamente cosa è andato storto. Considera di eseguire il backup dell'eccezione con una voce di registro dettagliata, se possibile.