English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base Python

Controllo dei flussi Python

Funzione in Python

Tipi di dati in Python

Operazioni di file Python

Oggetti e classi Python

Data e ora Python

Conoscenze avanzate di Python

Manuale di Python

Errores y excepciones integradas en Python

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'

Eccezioni integrate in Python

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.

Eccezioni standard integrate in Python
EccezioneCausa dell'errore
AssertionErrorEmitte quando fallisce una dichiarazione assert.
AttributeErrorEmitte quando fallisce l'allocazione o la riferimento dell'attributo.
EOFErrorEmitte quando la funzione input() raggiunge la condizione di fine del file.
FloatingPointErrorEmitte quando fallisce un calcolo a virgola mobile.
GeneratorExitEmitte quando si chiama il metodo generatore su un chiamante close().
ImportErrorEmitte quando non si trova il modulo importato.
IndexErrorEmitte quando l'indice della sequenza è fuori dall'intervallo.
KeyErrorEmitte quando non si trova una chiave nel dizionario.
KeyboardInterruptEmitte quando l'utente preme il tasto di interruzione (Ctrl + c o Delete).
MemoryErrorEmitte quando si verifica un errore di memoria insufficiente durante l'operazione.
NameErrorEmitte quando non si trova una variabile a livello locale o globale.
NotImplementedErrorMetodo non implementato.
OSErrorLanciata quando l'operazione di sistema provoca un errore di sistema
OverflowErrorLanciata quando il risultato dell'operazione aritmetica è troppo grande per essere rappresentato
ReferenceErrorLanciata quando si accede a un oggetto di riferimento di raccolta tramite un proxy di riferimento debole
RuntimeErrorLanciata quando l'errore non appartiene a nessuna altra categoria
StopIterationLanciata dalla funzione next() per indicare che l'iteratore non ha altri elementi da restituire
SyntaxErrorLanciata dal parser quando si verifica un errore di sintassi
IndentationErrorLanciata quando l'indentazione è errata
TabErrorLanciata quando l'indentazione è composta da tabulazioni e spazi non uniformi
SystemErrorLanciata quando l'interprete rileva un errore interno
SystemExitLanciata dalla funzione sys.exit()
TypeErrorLanciata quando una funzione o un'operazione viene applicata a un oggetto di tipo errato
UnboundLocalErrorLanciata quando si fa riferimento a una variabile locale in una funzione o metodo senza avere un valore associato a tale variabile
UnicodeErrorLanciata quando si verifica un errore di codifica o decodifica Unicode
UnicodeEncodeErrorLanciata quando si verifica un errore Unicode durante la codifica
UnicodeDecodeErrorLanciata quando si verifica un errore Unicode durante la decodifica
UnicodeTranslateErrorLanciata quando si verifica un errore Unicode durante la traduzione
ValueErrorLanciata quando la funzione riceve un argomento di tipo corretto ma con valore non corretto
ZeroDivisionErrorLanciata 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.