Python'da Farklı İstisna Türlerini Yakalama
Aynı kod içinde farklı türde istisnaları yakalamak gerekebilir.
Diyelim ki sıfıra bölme hatasını yakalamamız gerekiyor. Bu tür bir hata oluştuğunda şu istisna ortaya çıkar:
ZeroDivisionError: division by zero
Bunu yakalamak için, istisnanın adı except bloğuna yazılmalıdır:
try:
print(1 / 0)
except ZeroDivisionError:
print('error: do not divide by zero')
Ayrıca bir listemiz olduğunu varsayalım:
lst = [1, 2, 3]
Eğer try bloğuna, başka bir potansiyel hata içeren kod yazarsak,
örneğin var olmayan bir elemanı yazdırmak gibi, except bloğunda
yakalanmayan istisna ilerleyecek ve konsola yazdırılacaktır.
Bu da kodun çalışmasının durmasına neden olur:
lst = [1, 2, 3]
try:
print(lst[4]) # IndexError: list index out of range hatasını verecek
except ZeroDivisionError:
print('error: do not divide by zero')
Bu durumu çözmek için, her blokta ilgili istisna türünün adını belirtmeliyiz. Kodumuza eksik eleman istisnasını ekleyelim:
try:
print(lst[4])
except ZeroDivisionError:
print('error: do not divide by zero')
except IndexError:
print('error: elem is not exist')
Aşağıdaki kod verilmiştir:
txt = '2'
res1 = txt + 3
res2 = txt1
res1 ve res2 değişkenlerinde temsil edilen
istisnaları yakalamak için kodu yazın.