Le Eccezioni
Abbiamo già incontrato le eccezioni nelle parti precedenti. Queste eccezioni avvengono quando qualcosa va storto nel codice generando un errore. I motivi per cui questi errori si generano possono essere tantissimi, per esempio dovuto ad una risorsa non trovata per esempio un file, oppure ad un valore con un formato non compatibile per una particolare operazione, ecc.
Per esempio un errore molto comune è quando si ha una divisione per zero. L’eccezione che viene generata è ZeroDivisionError.
>>> 5/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
Quando l’esecuzione del codice porta ad un errore viene generata una eccezione (Exception), e se non gestita in qualche modo, l’esecuzione viene interrotta.
Python possiede già tantissime eccezioni già implementate nel sistema, ognuna specifica per un particolare tipo di errore. Alcune delle eccezioni più comuni sono:
ImportError – quando l’import di un modulo fallisce
IndexError – quando si cerca un elemento di una lista utilizzando un indice oltre la sua dimensione (out-of-range)
NameError – quando ci si riferisce ad una variabile non esistente (molto spesso non visibile)
SyntaxError – quando il codice contiene un errore di sintassi
TypeError – quando la tipologia di un valore non corrisponde a quella necessaria o non è riconosciuta
>>> 4 + "1"
ValueError – quando la tipologia del valore è esatto ma è il suo valore che non è corretto