Lezioni di Python – 4.2 Gestione delle eccezioni

Lezioni di Python - 4.2 Exception Handling

Exception Handling

Abbiamo visto nella sezione precedente che quando l’esecuzione del codice incontra un’errore, si genera un’eccezione che interrompe l’esecuzione del programma. Per evitare questo si può gestire l’eccezione, in modo da correggere l’errore, avere la possibilità di rimediare o fornire un’informazione in output sulla natura dell’errore avvenuto in modo poi capirne eventualmente la natura e correggere il codice.

La tecnica di gestione delle eccezioni viene chiamata Exception Handling.

In Python è possibile gestire un’eccezione tramite il costrutto try-except.

try :
blocco try
except NomeErrore:
blocco except

La clausola try definisce il blocco di codice in cui potrebbe essere generata un’eccezione. Se avviene l’eccezione, l’esecuzione delle istruzioni all’interno del blocco try si interrompe e va controllare se tale eccezione viene gestita tramite la clausola except. Se il nome della eccezione è presente (quindi è gestita) allora viene eseguito il codice del blocco except corrispondente.

a = 5
b = input("Inserisci un valore numerico: ")
try:
    b = int(b)
    res = a/b
    print("5 / ",b," = ",res)
except ZeroDivisionError:
    print("Attenzione stai effettuando una divisione per zero") 

Eseguendo il codice ed inserendo il valore 0 otterrai il messaggio invece di errore.

>>>
Inserisci un valore numerico: 0
Attenzione stai effettuando una divisione per zero

Adesso però se invece di inserire un valore numerico, inserissimo un carattere o una stringa, si generebbe un’eccezione di tipo ValueError. Bene, è possibile gestire anche questa eventualità estendendo il codice precedente con un’ulteriore clausola e blocco except.

a = 5
b = input("Inserisci un valore numerico: ")
try:
    b = int(b)
    res = a/b
    print("5 / ",b," = ",res)
except ZeroDivisionError:
    print("Attenzione stai effettuando una divisione per zero")
except ValueError:
    print("Attenzione hai immesso un valore errato") 

Questa volta eseguendo il codice ed inserendo per esempio una stringa si gestisce correttamente l’eccezione.

>>>
Inserisci un valore numerico: lkj
Attenzione hai inserito un valore errato

⇐ Vai a Lezione 4.1 – Le eccezioni

Vai a Lezione 4.3 Finally

Lascia un commento