Capitolo 16 – Gestione errori Python
In questo capitolo studiamo la gestione errori Python, fondamentale per rendere i programmi robusti, sicuri e in grado di affrontare situazioni impreviste.
Materiale originale a cura di Alfredo Di Fiore – megistone.it
Manuale completo:
vai all’indice del corso
La gestione delle eccezioni consente di intercettare errori durante l’esecuzione del programma evitando arresti improvvisi.
16.1 Obiettivi formativi
- comprendere il concetto di eccezione;
- usare
tryeexcept; - gestire
elseefinally; - riconoscere gli errori più comuni;
- scrivere programmi più affidabili.
16.2 Che cosa sono le eccezioni
Un’eccezione è un errore che si verifica durante l’esecuzione del programma, come divisione per zero, file inesistente o input non valido.
print(10 / 0)
Questo codice genera un errore di tipo ZeroDivisionError.
16.3 Blocco try except
Il costrutto try permette di controllare il codice a rischio, mentre except gestisce l’errore.
try:
x = 10 / 0
except ZeroDivisionError:
print("Divisione per zero non consentita")
La gestione errori è fondamentale nei programmi che leggono file, ricevono input utente o accedono a risorse esterne.
16.4 Uso di else nella gestione errori
Il blocco else viene eseguito solo se non si verificano errori.
try:
x = 10 / 2
except ZeroDivisionError:
print("Errore")
else:
print("Risultato:", x)
16.5 Finally nella gestione errori Python
Il blocco finally viene eseguito sempre, indipendentemente dalla presenza di errori.
try:
f = open("dati.txt")
except FileNotFoundError:
print("File non trovato")
finally:
print("Operazione terminata")
È particolarmente utile per chiudere file o liberare risorse.
16.6 Gestione di più eccezioni
try:
n = int(input("Numero: "))
print(10 / n)
except ValueError:
print("Input non valido")
except ZeroDivisionError:
print("Non puoi dividere per zero")
Molti studenti usano except generico senza specificare il tipo di errore, rendendo il debug più difficile.
16.7 Riepilogo sulla gestione errori
trycontrolla il codice a rischio;exceptintercetta gli errori;elsesi esegue se non ci sono eccezioni;finallyviene eseguito sempre;- la gestione errori rende il software più affidabile.
16.8 Domande tipiche d’esame
- Che differenza c’è tra
exceptefinally? - Quando si usa
else? - Perché è importante gestire le eccezioni?
- Che cos’è un
ZeroDivisionError?
16.9 Esercizi
- Gestisci la divisione per zero in una calcolatrice.
- Leggi un numero e controlla che sia valido.
- Apri un file gestendo l’errore di file mancante.
Approfondimento ufficiale:
documentazione Python sulle eccezioni