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/Funzione | Sintassi | Descrizione |
|---|---|---|
| ValueError | int("abc") | Sollevato quando una funzione riceve un argomento di tipo corretto ma valore inappropriato. |
| TypeError | "1" + 2 | Sollevato quando un'operazione o una funzione viene applicata a un oggetto di tipo inappropriato. |
| IndexError | my_list[10] | Sollevato quando un pedice di sequenza è fuori intervallo. |
| KeyError | my_dict["missing"] | Sollevato quando non viene trovata una chiave del dizionario. |
| AttributeError | my_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/Funzione | Sintassi | Descrizione |
|---|---|---|
| FileNotFoundError | open("missing.txt") | Sollevato quando un file o una directory viene richiesto ma non esiste. |
| ZeroDivisionError | 1 / 0 | Sollevato quando il secondo argomento di una divisione o di un'operazione modulo è zero. |
| SyntaxError | while True print("hi") | Generato quando il parser incontra un errore di sintassi. |
| NameError | print(undefined_variable) | Sollevato quando non viene trovato un nome locale o globale. |
| StopIteration | next(exhausted_iterator) | Generato dal built-in next() per segnalare che l'iteratore non ha ulteriori elementi. |
Script dimostrativo interattivo
# 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
Padroneggia istruzioni condizionali, loop e strutture di controllo dei loop in Python. Impara se-altro, per, mentre, interrompi e continua.
Foglio informativo sulle operazioni sui file PythonRiferimento rapido per leggere e scrivere file in Python. Padroneggia le modalità aperte, i gestori del contesto e la lettura riga per riga.
Foglio informativo sulle funzioni integrate di PythonGuida di riferimento alle funzioni integrate di Python. Scopri come utilizzare stampa, lente, intervallo, enumerazione, zip, mappa, filtro e altro ancora.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Prova/eccetto Python e gestione degli errori
Evita che i tuoi script Python si blocchino. Scopri i blocchi try, tranne, infine e come generare correttamente le eccezioni personalizzate.
Come ordinare un elenco in Python
Scopri come ordinare un elenco in Python utilizzando il metodo sort() e la funzione sorted(). Scopri l'ordinamento delle chiavi personalizzato e gli esempi di ordine inverso.
Python vs TypeScript: Scripting dinamico vs Web type-safe
Confronta Python e TypeScript. Scopri di più sui sistemi di tipo strutturale, sui metadati del decoratore, sui controlli del compilatore, sui runtime Web e sugli strumenti per sviluppatori.