სხვადასხვა ტიპის გამონაკლისების დაჭერა Python-ში
ერთსა და იმავე კოდში შეიძლება დაგვჭირდეს სხვადასხვა ტიპის გამონაკლისების დაჭერა.
დავუშვათ, ჩვენ გვჭირდება გამონაკლისის დაჭერა ნულზე გაყოფისას. ამ ტიპის შეცდომაზე გამოდის გამონაკლისი:
ZeroDivisionError: division by zero
მისი დასაჭერად, გამონაკლისის სახელი უნდა
ჩაიწეროს except ბლოკში:
try:
print(1 / 0)
except ZeroDivisionError:
print('error: do not divide by zero')
ასევე დავუშვათ, გვაქვს სია:
lst = [1, 2, 3]
თუ try ბლოკში ჩაიწერება კოდი სხვა
პოტენციური შეცდომით, მაგალითად, არარსებული
ელემენტის გამოტანით, მაშინ გამონაკლისი,
რომელიც არ დაიჭირება except ბლოკში, გაივლის
შემდგომ და გამოიყვანება კონსოლში. რის გამოც
შეჩერდება კოდის მუშაობა:
lst = [1, 2, 3]
try:
print(lst[4]) # გამოიტანს IndexError: list index out of range
except ZeroDivisionError:
print('error: do not divide by zero')
ასეთი სიტუაციის გადასაჭრელად, საჭიროა მივუთითოთ თითოეულ ბლოკში გამონაკლისების შესაბამისი ტიპის სახელი. დავამატოთ ჩვენს კოდში გამონაკლისი არმყოფელი ელემენტისთვის:
try:
print(lst[4])
except ZeroDivisionError:
print('error: do not divide by zero')
except IndexError:
print('error: elem is not exist')
მოცემულია შემდეგი კოდი:
txt = '2'
res1 = txt + 3
res2 = txt1
დაწერეთ კოდი, რომელიც დაიჭერს წარმოდგენილ
ცვლადებში res1 და res2
გამონაკლისებს.