Блок else при перехвате исключений в Python
try-except конструкциисига
else блокани ҳам қўшish мумкин. Мухим
нуқта şуңки, else блокада жойлашган код
try-except да унинг олдида heç қандай
istisno тутилмаган тақдирда ишлайди.
Бизда рўйхат мавжуд деб фараз қилайлик:
lst = [1, 2, 3]
try-except конструкциисида рўйхатнинг
мавжуд бўлмаган элементи учун istisnoни тутишни
ёзайлик:
try:
print(lst[4])
except IndexError:
print('error: elem is not exist')
Энди else блокада рўйхатнинг барча
элементларининг йиғиндисини чиқаришни белгилаймиз:
try:
print(lst[4])
except IndexError:
print('error: elem is not exist')
else:
print(sum(lst))
Aгар try блокаги код рўйхатда мавжуд
бўлмаган элементга мурожаат қилса, у ҳолда
консолда хатолик хақида хабар чиқади:
'error: elem is not exist'
Энди try блокада рўйхатда аниқ мавжуд
бўлган элементни чиқаришни белгилаймиз:
try:
print(lst[0])
except IndexError:
print('error: elem is not exist')
else:
print(sum(lst))
Кодни бажарилганидан сўнг консолда иккита сон
чиқади: try да белгиланган элемент ва
рўйхатнинг барча элементларининг йиғиндиси:
1
6
Рўйхат берилган:
lst = [1, 2, 3]
Нолга бўлиш билан боглик istisnoни тутиш учун код ёзинг. Агар бу istisno пайдо бўлмаса, рўйхатнинг узунлиги чиқсин.