Esistono esecuzioni per separare il normale flusso del programma (ciò che il programma è progettato per fare) dal flusso di gestione degli errori (come il programma sta tentando di recuperare da una situazione eccezionale) .
Questo rende il codice più chiaro e più facile da mantenere.
Considera due sniplet di codice:
try:
do1() # this is obvoiusly a normal
do2() # program flow
except:
oups() # this is exception handling code
Rispetto a questo:
if foo():
thing1() # is this part of normal program flow?
else:
thing2() # or maybe this one? Or both? When?
Ovviamente, è possibile utilizzare la gestione delle eccezioni per impedire il crash del programma da parte di:
try { // very bad code
my();
whole();
ugly();
application();
here();
} catch (Throwable t) {
// pretend it's ok
}
ma questo non è il motivo delle eccezioni nei moderni linguaggi di programmazione.
Puoi anche usare while
e break
invece di if
ma questo non è ciò che while
e break
sono per.