Gestione errori Python

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 try e except;
  • gestire else e finally;
  • 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")
💡 Applicazione pratica

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")
⚠️ Errore comune

Molti studenti usano except generico senza specificare il tipo di errore, rendendo il debug più difficile.


16.7 Riepilogo sulla gestione errori

  • try controlla il codice a rischio;
  • except intercetta gli errori;
  • else si esegue se non ci sono eccezioni;
  • finally viene eseguito sempre;
  • la gestione errori rende il software più affidabile.

16.8 Domande tipiche d’esame

  1. Che differenza c’è tra except e finally?
  2. Quando si usa else?
  3. Perché è importante gestire le eccezioni?
  4. Che cos’è un ZeroDivisionError?

16.9 Esercizi

  1. Gestisci la divisione per zero in una calcolatrice.
  2. Leggi un numero e controlla che sia valido.
  3. Apri un file gestendo l’errore di file mancante.

Approfondimento ufficiale:

documentazione Python sulle eccezioni


Articoli simili