Stampa un'eccezione in Python
-
Stampa un’eccezione usando i blocchi
try-except-finally
in Python -
Eccezione di stampa usando il modulo
traceback
in Python
In Python, un’eccezione è un errore. Ci sono molti errori o eccezioni in Python, come TypeError
, SyntaxError
, KeyError
, AttributeError
, ecc. Usiamo try-except-finally
in Python per gestire queste eccezioni perché, senza questi blocchi, queste eccezioni interromperanno l’esecuzione del programma. I blocchi try-except-finally
in Python possono essere usati per stampare queste eccezioni senza interrompere l’esecuzione del programma.
Stampa un’eccezione usando i blocchi try-except-finally
in Python
Considera il seguente frammento di codice.
dictionary = {
"hello": "world",
}
number = 25
try:
number = number + dictionary["hello"]
print(number)
except Exception as e:
print(repr(e))
Produzione:
TypeError("unsupported operand type(s) for +: 'int' and 'str'",)
Nel codice sopra, inizializziamo prima un dizionario con hello
come chiave che punta al valore di stringa world
e una variabile numero
. Quindi all’interno del blocco try
, stiamo cercando di accedere al valore della stringa memorizzato nel dictionary
e di aggiungerlo alla variabile number
.
Questa affermazione è sia praticamente che concettualmente sbagliata perché è impossibile aggiungere una stringa
a un intero
. Quindi il blocco except
rileva questo errore e stampa l’oggetto Exception
associato a questa eccezione nella console.
Eccezione di stampa usando il modulo traceback
in Python
Python ha un modulo integrato, traceback
, per la stampa e la formattazione delle eccezioni. E semplifica la stampa dell’intera eccezione nella console.
In Python, puoi sollevare manualmente le eccezioni usando la parola chiave raise
. Nel seguente frammento di codice, useremo la parola chiave raise
per sollevare eccezioni all’interno del blocco try
.
import traceback
try:
raise KeyError
except Exception as e:
traceback.print_exc()
Produzione:
Traceback (most recent call last):
File ".\main.py", line 4, in <module>
raise KeyError
KeyError
Nel codice sopra, solleviamo un’eccezione KeyError
e usiamo la funzione print_exc()
dal modulo traceback
per stampare l’eccezione. Questa funzione stampa le informazioni sull’eccezione ed è un’abbreviazione per traceback.print_exception(*sys.exc_info(), limit, file, chain)
.
Per saperne di più sulla funzione print_exception()
fare riferimento ai documenti ufficiali qui