Python Dasar | #9 Exception Handling

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