Foglio informativo sui tipi di eccezioni ed errori incorporati in Python

Guida di riferimento per i tipi di errore comuni di Python. Scopri come eseguire il debug di ValueError, TypeError, IndexError, KeyError e generare eccezioni.

Logica comune ed eccezioni di valore

Eccezioni che rappresentano operazioni non corrispondenti, indici mancanti o errori variabili.

Metodo/FunzioneSintassiDescrizione
ValueErrorint("abc")Sollevato quando una funzione riceve un argomento di tipo corretto ma valore inappropriato.
TypeError"1" + 2Sollevato quando un'operazione o una funzione viene applicata a un oggetto di tipo inappropriato.
IndexErrormy_list[10]Sollevato quando un pedice di sequenza è fuori intervallo.
KeyErrormy_dict["missing"]Sollevato quando non viene trovata una chiave del dizionario.
AttributeErrormy_str.append("x")Generato quando un riferimento o un'assegnazione di attributo fallisce (ad esempio metodi di elenco chiamate su stringa).

Eccezioni di runtime e risorse

Problemi che rappresentano file system esterni, arresti anomali dei calcoli o errori di sintassi di esecuzione.

Metodo/FunzioneSintassiDescrizione
FileNotFoundErroropen("missing.txt")Sollevato quando un file o una directory viene richiesto ma non esiste.
ZeroDivisionError1 / 0Sollevato quando il secondo argomento di una divisione o di un'operazione modulo è zero.
SyntaxErrorwhile True print("hi")Generato quando il parser incontra un errore di sintassi.
NameErrorprint(undefined_variable)Sollevato quando non viene trovato un nome locale o globale.
StopIterationnext(exhausted_iterator)Generato dal built-in next() per segnalare che l'iteratore non ha ulteriori elementi.

Script dimostrativo interattivo

run_all_cheat_methods.py
Esegui nell'editor
# ValueError
int("abc")

# TypeError
"1" + 2

# IndexError
my_list[10]

# KeyError
my_dict["missing"]

# AttributeError
my_str.append("x")

# FileNotFoundError
open("missing.txt")

# ZeroDivisionError
1 / 0

# SyntaxError
while True print("hi")

# NameError
print(undefined_variable)

# StopIteration
next(exhausted_iterator)

Domande frequenti

Come posso rilevare più eccezioni in Python?

Puoi specificarli come una tupla in un singolo blocco tranne, ad esempio, tranne (ValueError, TypeError) come e:.

Quando dovrei sollevare eccezioni manualmente?

Genera eccezioni utilizzando la parola chiave raise quando si verifica una condizione imprevista nel codice che impedisce la normale esecuzione, ad esempio errori di convalida.

Argomenti correlati

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.