Blok else przy przechwytywaniu wyjątków w Pythonie
Do konstrukcji try-except można również
dodać blok else. Ważny niuans
polega na tym, że kod umieszczony w bloku
else zadziała, jeśli przed nim w
try-except nie zostało przechwycone żadne
wyjątki.
Załóżmy, że mamy listę:
lst = [1, 2, 3]
W konstrukcji try-except zapiszmy
przechwytywanie wyjątku dla nieistniejącego
elementu listy:
try:
print(lst[4])
except IndexError:
print('error: elem is not exist')
Teraz wskażmy w bloku else
wypisanie sumy wszystkich elementów listy:
try:
print(lst[4])
except IndexError:
print('error: elem is not exist')
else:
print(sum(lst))
Jeśli kod w bloku try odwołuje się do
nieistniejącego elementu, to w konsoli
pojawi się komunikat o błędzie:
'error: elem is not exist'
Teraz ustawmy w bloku try wypisanie
elementu, który na pewno znajduje się na liście:
try:
print(lst[0])
except IndexError:
print('error: elem is not exist')
else:
print(sum(lst))
Po wykonaniu kodu w konsoli pojawią się
dwie liczby: element podany w try
i suma wszystkich elementów listy:
1
6
Dana jest lista:
lst = [1, 2, 3]
Napisz kod, aby przechwycić wyjątek związany z dzieleniem przez zero. W przypadku, gdy ten wyjątek się nie pojawi, niech wypisze się długość listy.