English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Quando Python (interprete) incontra errori, lancia eccezioni. Ad esempio: divisione per zero. In questo articolo, imparerai diverse eccezioni di gestione integrate in Python.
Quando scriviamo programmi, spesso ci incontriamo con errori.
Gli errori causati dalla mancata osservanza della struttura corretta del linguaggio (sintassi) vengono chiamati errori di sintassi o errori di analisi.
>>> if a < 3 File '<input interattivo>', riga 1 if a < 3 ^ SyntaxError: sintassi non valida
Ecco possiamo notare che manca un punto e virgola nella dichiarazione if.
Gli errori possono anche verificarsi durante l'esecuzione, che vengono chiamati eccezioni. Ad esempio, quando tentiamo di aprire un file che non esiste (FileNotFoundError), dividere un numero per zero (ZeroDivisionError), o trovare il modulo che stiamo cercando di importare (ImportError), ecc., si verifica questo tipo di situazione.
Ogni volta che si verifica questo tipo di errore di runtime, Python crea un oggetto di eccezione. Se non gestito correttamente, esce con una traccia di backtrace e alcune informazioni dettagliate sulla causa dell'errore.
>>> 1 / 0 Traceback (chiamata più recente in fondo): File "<string>", riga 301, in runcode File "<input interattivo>", riga 1, in <modulo> ZeroDivisionError: divisione per zero >>> open("imaginary.txt") Traceback (chiamata più recente in fondo): File "<string>", riga 301, in runcode File "<input interattivo>", riga 1, in <modulo> FileNotFoundError: [Errno 2] File o directory non trovato: 'imaginary.txt'
Operazioni illegali possono generare eccezioni. Ci sono molte eccezioni integrate in Python, che vengono generate quando si verificano errori corrispondenti. Possiamo utilizzare la funzione integrata local() per visualizzare tutte le eccezioni integrate, come mostrato di seguito.
>>> locals()['__builtins__']
Questo ci restituirà un dizionario di eccezioni, funzioni e attributi integrati.
Di seguito è elencato alcuni degli eccezioni integrate comuni nel programming Python e gli errori che causano queste eccezioni.
Eccezione | Causa dell'errore |
---|---|
AssertionError | Emitte quando fallisce una dichiarazione assert. |
AttributeError | Emitte quando fallisce l'allocazione o la riferimento dell'attributo. |
EOFError | Emitte quando la funzione input() raggiunge la condizione di fine del file. |
FloatingPointError | Emitte quando fallisce un calcolo a virgola mobile. |
GeneratorExit | Emitte quando si chiama il metodo generatore su un chiamante close(). |
ImportError | Emitte quando non si trova il modulo importato. |
IndexError | Emitte quando l'indice della sequenza è fuori dall'intervallo. |
KeyError | Emitte quando non si trova una chiave nel dizionario. |
KeyboardInterrupt | Emitte quando l'utente preme il tasto di interruzione (Ctrl + c o Delete). |
MemoryError | Emitte quando si verifica un errore di memoria insufficiente durante l'operazione. |
NameError | Emitte quando non si trova una variabile a livello locale o globale. |
NotImplementedError | Metodo non implementato. |
OSError | Lanciata quando l'operazione di sistema provoca un errore di sistema |
OverflowError | Lanciata quando il risultato dell'operazione aritmetica è troppo grande per essere rappresentato |
ReferenceError | Lanciata quando si accede a un oggetto di riferimento di raccolta tramite un proxy di riferimento debole |
RuntimeError | Lanciata quando l'errore non appartiene a nessuna altra categoria |
StopIteration | Lanciata dalla funzione next() per indicare che l'iteratore non ha altri elementi da restituire |
SyntaxError | Lanciata dal parser quando si verifica un errore di sintassi |
IndentationError | Lanciata quando l'indentazione è errata |
TabError | Lanciata quando l'indentazione è composta da tabulazioni e spazi non uniformi |
SystemError | Lanciata quando l'interprete rileva un errore interno |
SystemExit | Lanciata dalla funzione sys.exit() |
TypeError | Lanciata quando una funzione o un'operazione viene applicata a un oggetto di tipo errato |
UnboundLocalError | Lanciata quando si fa riferimento a una variabile locale in una funzione o metodo senza avere un valore associato a tale variabile |
UnicodeError | Lanciata quando si verifica un errore di codifica o decodifica Unicode |
UnicodeEncodeError | Lanciata quando si verifica un errore Unicode durante la codifica |
UnicodeDecodeError | Lanciata quando si verifica un errore Unicode durante la decodifica |
UnicodeTranslateError | Lanciata quando si verifica un errore Unicode durante la traduzione |
ValueError | Lanciata quando la funzione riceve un argomento di tipo corretto ma con valore non corretto |
ZeroDivisionError | Lanciata quando il secondo operando della divisione o modulo è zero |
Possiamo anche definire le nostre eccezioni personalizzate in Python (se necessario). Visita questa pagina per informazioni suEccezioni definite dall'utentePiù informazioni.
Possiamo utilizzare le istruzioni try, except e finallyGestire queste eccezioni integrate e definite dall'utente in Python.