Exception Handling di Python
Dalam pemrograman, kadang-kadang kita menemukan error yang tidak dapat dihindari, misalnya ketika mencoba membuka file yang tidak ada atau melakukan pembagian dengan nol. Python menyediakan mekanisme untuk menangani error ini dengan cara exception handling. Dengan try-except, kita bisa mencegah program berhenti tiba-tiba dan memberikan pesan yang lebih ramah bagi pengguna.
1. Try, Except, Finally
Blok try
digunakan untuk menempatkan kode yang mungkin menyebabkan error. Jika error terjadi, alih-alih menghentikan program, Python akan menjalankan blok except
. Blok finally
akan selalu dijalankan, baik terjadi error maupun tidak.
try:
angka = int(input("Masukkan angka: "))
hasil = 10 / angka
print(f"Hasil: {hasil}")
except ZeroDivisionError:
print("Error: Tidak bisa membagi dengan nol.")
except ValueError:
print("Error: Input harus berupa angka.")
finally:
print("Proses selesai.")
Pada contoh di atas, jika pengguna memasukkan angka 0, maka exception ZeroDivisionError
akan ditangani, dan pesan "Error: Tidak bisa membagi dengan nol" akan muncul. Jika pengguna memasukkan sesuatu yang bukan angka, exception ValueError
akan ditangani. Blok finally
akan selalu dijalankan, entah ada error atau tidak.
2. Membuat Custom Exception
Kita juga bisa membuat custom exception atau pengecualian buatan sendiri di Python. Ini berguna ketika kita ingin membuat error yang lebih spesifik dan sesuai dengan kebutuhan program kita. Untuk membuat custom exception, kita cukup membuat kelas baru yang mewarisi dari kelas Exception
.
class AngkaNegatifError(Exception):
pass
def cek_angka(angka):
if angka < 0:
raise AngkaNegatifError("Angka tidak boleh negatif!")
return angka
try:
angka = int(input("Masukkan angka positif: "))
cek_angka(angka)
print(f"Angka yang dimasukkan: {angka}")
except AngkaNegatifError as e:
print(f"Error: {e}")
except ValueError:
print("Error: Input harus berupa angka.")
Dalam contoh ini, kita membuat exception bernama AngkaNegatifError
. Jika pengguna memasukkan angka negatif, program akan melempar (raise
) custom exception ini dengan pesan "Angka tidak boleh negatif!". Pesan tersebut akan ditangkap di blok except
dan ditampilkan kepada pengguna.
Kesimpulan
Dengan menggunakan exception handling seperti try
, except
, dan finally
, kita bisa menangani error dengan lebih baik dan memastikan program tetap berjalan tanpa berhenti secara tiba-tiba. Selain itu, dengan custom exception, kita bisa membuat pengecualian yang sesuai dengan logika dan kebutuhan program kita.
Komentar
Posting Komentar