İstisnaları yakalama
Kendi özel istisnalarını yazmaya başlamadan önce, istisna işlemenin temellerinin sağlam olduğundan emin olalım.
Bu egzersizde sana iki argüman alan bir invert_at_index(x, ind) fonksiyonu veriliyor: bir liste x ve bir indeks ind. Fonksiyon, listedeki o indeksteki öğeyi tersine çevirir. Örneğin invert_at_index([5,6,7], 0) 1/5 ya da 0.2 döndürür.
Amacın, oluşan hata türüne göre özel istisnalar yükseltecek hata işleme mantığını uygulamak.
Bu egzersiz
Python'da Nesne Yönelimli Programlamaya Giriş
kursunun bir parçasıdırEgzersiz talimatları
Fonksiyon içinde iki except bloğu olan bir try - except - except deseni kullanarak aşağıdaki iki istisnayı yakala ve işle:
- Kodu olduğu gibi
tryet ve1/x[ind]döndür. ZeroDivisionErroroluşursa,"Cannot divide by zero!"yazdır,IndexErroroluşursa,"Index out of range!"yazdır
Doğru yaptığını, kod hatasız çalışıyor ve konsoldaki çıktı şöyleyse anlarsın:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Modify the function to catch exceptions
def invert_at_index(x, ind):
____:
return 1/x[ind]
_____:
print("____")
____:
print("____")
a_list = [5,6,0,7]
# Works okay
print(invert_at_index(a_list, 1))
# Potential ZeroDivisionError
print(invert_at_index(a_list, 2))
# Potential IndexError
print(invert_at_index(a_list, 5))