Gestione degli Errori Flashcards
Eccezioni di Python
Eccezioni (in inglese exception) di Python che quando si manifestano, comportano spesso il crash del programma e la comparsa di un messaggio di errore
Eccezioni comuni
NameError = provando a moltiplicare una variabile che non è stata definita
ZeroDivisionError = proviamo ad effettuare una divisione per zero
Istruzioni TRY ed EXCEPT
Il codice del blocco TRY verrà eseguito qualora tutto andasse liscio e senza errori, mentre il codice inserito nel blocco EXCEPT verrà eseguito solamente qualora si dovesse manifestare l’eccezione ad esso associato
Esempio:
def moltiplicatore():
try:
a = int(input(“Inserisci il valore di a: “))
b = int(input(“Inserisci il valore di b: “))
risultato = a * b
print(risultato)
except ValueError:
print(“‘Hey tu! solo caratteri numerici, grazie!”)
moltiplicatore()
output
Inserisci il valore di a: bacon
Hey amico! solo caratteri numerici, grazie!
Istruzione FINALLY
Il codice definito nel blocco di finally verrà eseguito alla fine del programma qualsiasi cosa succeda, sia che si manifesti un errore oppure no
Esempio:
def moltiplicatore():
try:
a = int(input(“Inserisci il valore di a: “))
b = int(input(“Inserisci il valore di b: “))
risultato = a * b
print(risultato)
except ValueError:
print(“Hey tu! solo caratteri numerici, grazie!”)
finally:
print(“Sto chiudendo l’applicazione!”)
moltiplicatore()
eseguiamo il codice cercando di innescare l’errore
Inserisci il valore di a: poker
Hey tu! solo caratteri numerici, grazie!
Sto chiudendo l’applicazione!
eseguiamo nuovamente il codice senza innescare l’errore
Inserisci il valore di a: 2
Inserisci il valore di b: 3
6
Sto chiudendo l’applicazione!
Come mostrare i messaggi di errore
Nel blocco dell’EXCEPT, dopo il nome dell’eccezione che stiamo gestendo, possiamo aggiungere AS E, e quindi mandare in output il valore di E tramite PRINT()
Esempio:
def moltiplicatore():
try:
a = int(input(“Inserisci il valore di a: “))
b = int(input(“Inserisci il valore di b: “))
risultato = a * b
print(risultato)
except ValueError as e:
print(f”Errore: {e}”)
print(“Hey tu! solo caratteri numerici, grazie!”)
finally:
print(“Sto chiudendo l’applicazione!”)
moltiplicatore()
output
Inserisci il valore di a: spam
Errore: invalid literal for int() with base 10: ‘spam’
Hey tu! solo caratteri numerici, grazie!
Sto chiudendo l’applicazione!