Menangkap exception
Sebelum Anda mulai menulis exception kustom sendiri, pastikan Anda menguasai dasar-dasar penanganan exception.
Dalam latihan ini, Anda diberikan fungsi invert_at_index(x, ind) yang menerima dua argumen, sebuah daftar x dan sebuah indeks ind, lalu membalikkan elemen daftar pada indeks tersebut. Misalnya invert_at_index([5,6,7], 0) mengembalikan 1/5, atau 0.2.
Tujuan Anda adalah menerapkan penanganan error untuk memunculkan exception kustom berdasarkan jenis error yang terjadi.
Latihan ini adalah bagian dari kursus
Pengantar Pemrograman Berorientasi Objek di Python
Petunjuk latihan
Gunakan pola try - except - except (dengan dua blok except) di dalam fungsi untuk menangkap dan menangani dua exception sebagai berikut:
tryjalankan kodenya apa adanya, mengembalikan1/x[ind].- jika terjadi
ZeroDivisionError, cetak"Cannot divide by zero!", - jika terjadi
IndexError, cetak"Index out of range!"
Anda tahu solusi Anda benar jika kode berjalan tanpa error, dan keluaran di konsol adalah:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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))