Blocco else nella gestione delle eccezioni in Python
Nella costruzione try-except è possibile
aggiungere anche un blocco else. Una sfumatura importante
è che il codice posizionato nel blocco
else verrà eseguito se prima di esso, in
try-except, non è stata catturata alcuna
eccezione.
Supponiamo di avere una lista:
lst = [1, 2, 3]
Nella costruzione try-except scriviamo
la cattura di un'eccezione per un elemento
inesistente della lista:
try:
print(lst[4])
except IndexError:
print('error: elem is not exist')
Ora specifichiamo nel blocco else
la stampa della somma di tutti gli elementi della lista:
try:
print(lst[4])
except IndexError:
print('error: elem is not exist')
else:
print(sum(lst))
Se il codice nel blocco try tenta di accedere
a un elemento inesistente, nella console
apparirà un messaggio di errore:
'error: elem is not exist'
Ora impostiamo nel blocco try la stampa
di un elemento che sicuramente è presente nella lista:
try:
print(lst[0])
except IndexError:
print('error: elem is not exist')
else:
print(sum(lst))
Dopo l'esecuzione del codice nella console appariranno
due numeri: l'elemento specificato in try
e la somma di tutti gli elementi della lista:
1
6
Data la lista:
lst = [1, 2, 3]
Scrivi il codice per catturare l'eccezione relativa alla divisione per zero. Nel caso in cui questa eccezione non si verifichi, deve essere stampata la lunghezza della lista.