İ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, kursun bir parçasıdır
Python'da Nesne Yönelimli Programlamaya Giriş
Egzersiz 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ı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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))