Python Prova tranne
Il try
blocco consente di verificare la presenza di errori in un blocco di codice.
Il except
blocco ti consente di gestire l'errore.
Il else
blocco ti consente di eseguire codice quando non ci sono errori.
Il finally
blocco consente di eseguire codice, indipendentemente dal risultato dei blocchi try ed eccetto.
La gestione delle eccezioni
Quando si verifica un errore, o un'eccezione come la chiamiamo, Python normalmente si arresta e genera un messaggio di errore.
Queste eccezioni possono essere gestite utilizzando l' try
istruzione:
Esempio
Il try
blocco genererà un'eccezione, perché x
non è definito:
try:
print(x)
except:
print("An exception occurred")
Poiché il blocco try genera un errore, verrà eseguito il blocco di eccezione.
Senza il blocco try, il programma si arresta in modo anomalo e genera un errore:
Esempio
Questa istruzione genererà un errore, perché x
non è definito:
print(x)
Molte eccezioni
Puoi definire tutti i blocchi di eccezioni che desideri, ad esempio se desideri eseguire un blocco di codice speciale per un tipo speciale di errore:
Esempio
Stampa un messaggio se il blocco try genera a NameError
e un altro per altri errori:
try:
print(x)
except NameError:
print("Variable x
is not defined")
except:
print("Something else went
wrong")
Altro
È possibile utilizzare la else
parola chiave per definire un blocco di codice da eseguire se non vengono generati errori:
Esempio
In questo esempio, il try
blocco non genera alcun errore:
try:
print("Hello")
except:
print("Something went
wrong")
else:
print("Nothing went wrong")
Infine
Il finally
blocco, se specificato, verrà eseguito indipendentemente dal fatto che il blocco try generi un errore o meno.
Esempio
try:
print(x)
except:
print("Something went
wrong")
finally:
print("The 'try except' is finished")
Questo può essere utile per chiudere oggetti e ripulire le risorse:
Esempio
Prova ad aprire e scrivere su un file che non è scrivibile:
try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()
except:
print("Something went wrong when opening the
file")
Il programma può continuare, senza lasciare aperto l'oggetto file.
Solleva un'eccezione
Come sviluppatore Python puoi scegliere di generare un'eccezione se si verifica una condizione.
Per generare (o aumentare) un'eccezione, utilizzare la raise
parola chiave.
Esempio
Genera un errore e arresta il programma se x è inferiore a 0:
x = -1
if x < 0:
raise Exception("Sorry, no numbers below
zero")
La raise
parola chiave viene utilizzata per sollevare un'eccezione.
È possibile definire il tipo di errore da generare e il testo da stampare per l'utente.
Esempio
Solleva un TypeError se x non è un numero intero:
x = "hello"
if not type(x) is int:
raise TypeError("Only
integers are allowed")