MulaiMulai sekarang secara gratis

Menangkap exception

Sebelum Anda mulai menulis exception kustom sendiri, pastikan Anda memahami dasar-dasar penanganan exception.

Pada latihan ini, Anda diberikan fungsi invert_at_index(x, ind) yang menerima dua argumen, sebuah list x dan sebuah indeks ind, lalu membalik (menginvers) elemen list pada indeks tersebut. Misalnya, invert_at_index([5,6,7], 1) mengembalikan 1/6, atau 0.166666.

Cobalah menjalankan kode apa adanya dan periksa output di konsol. Ada dua operasi tidak aman dalam fungsi ini: pertama, jika elemen yang ingin kita invers bernilai 0, maka kode akan menimbulkan exception ZeroDivisionError. Kedua, jika indeks yang diberikan ke fungsi berada di luar jangkauan list, kode akan menimbulkan IndexError. Pada kedua kasus, skrip akan terhenti, yang mungkin tidak diinginkan.

Latihan ini adalah bagian dari kursus

Pemrograman Berorientasi Objek di Python

Lihat Kursus

Petunjuk latihan

Gunakan pola try - except - except (dengan dua blok except) di dalam fungsi untuk menangkap dan menangani dua exception berikut:

  • try jalankan kode apa adanya,
  • 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 output 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]
 
a = [5,6,0,7]

# Works okay
print(invert_at_index(a, 1))

# Potential ZeroDivisionError
print(invert_at_index(a, 2))

# Potential IndexError
print(invert_at_index(a, 5))
Edit dan Jalankan Kode