Error handling adalah teknik untuk menangani kesalahan (error) yang terjadi selama eksekusi program. Dengan error handling, Anda bisa mencegah program berhenti secara tiba-tiba dan memberikan respons yang lebih baik saat terjadi masalah. Mari kita pelajari cara menangani error di Python menggunakan try
, except
, finally
, dan raise
!
1. Apa itu Error?
Error (atau exception) adalah masalah yang terjadi selama eksekusi program. Python memiliki banyak jenis error, seperti SyntaxError
, TypeError
, ValueError
, ZeroDivisionError
, dan lain-lain.
Contoh Error:
# Contoh error ZeroDivisionError print(10 / 0) # Akan menghasilkan error: ZeroDivisionError
2. Menggunakan Try-Except
Blok try
digunakan untuk menjalankan kode yang mungkin menghasilkan error. Jika error terjadi, blok except
akan menangkap dan menanganinya.
Contoh Kode:
# Menangani error ZeroDivisionError try: hasil = 10 / 0 except ZeroDivisionError: print("Error: Tidak bisa membagi dengan nol.")
Output:
Error: Tidak bisa membagi dengan nol.
Penjelasan:
- Kode di dalam blok
try
akan dijalankan. - Jika terjadi
ZeroDivisionError
, blokexcept
akan dieksekusi.
3. Menangani Multiple Exception
Anda bisa menangani beberapa jenis error dengan menambahkan blok except
lebih dari satu.
Contoh Kode:
# Menangani multiple exception try: angka = int(input("Masukkan angka: ")) hasil = 10 / angka print("Hasil:", hasil) except ValueError: print("Error: Input harus berupa angka.") except ZeroDivisionError: print("Error: Tidak bisa membagi dengan nol.")
Output (jika input bukan angka):
Masukkan angka: abc Error: Input harus berupa angka.
Output (jika input adalah 0):
Masukkan angka: 0 Error: Tidak bisa membagi dengan nol.
4. Menggunakan Else dalam Try-Except
Blok else
akan dieksekusi jika tidak ada error yang terjadi di blok try
.
Contoh Kode:
# Menggunakan else try: angka = int(input("Masukkan angka: ")) hasil = 10 / angka except ValueError: print("Error: Input harus berupa angka.") except ZeroDivisionError: print("Error: Tidak bisa membagi dengan nol.") else: print("Hasil:", hasil) # Dieksekusi jika tidak ada error
Output (jika input valid):
Masukkan angka: 2 Hasil: 5.0
5. Menggunakan Finally
Blok finally
akan selalu dieksekusi, baik error terjadi maupun tidak. Biasanya digunakan untuk membersihkan sumber daya (seperti menutup file).
Contoh Kode:
# Menggunakan finally try: file = open("contoh.txt", "r") print(file.read()) except FileNotFoundError: print("Error: File tidak ditemukan.") finally: print("Blok finally dieksekusi.") file.close() # Pastikan file ditutup
Output (jika file tidak ditemukan):
Error: File tidak ditemukan. Blok finally dieksekusi.
6. Membuat Custom Exception
Anda bisa membuat exception sendiri dengan membuat kelas yang mewarisi dari kelas Exception
.
Contoh Kode:
# Membuat custom exception class NilaiTerlaluKecilError(Exception): def __init__(self, pesan="Nilai terlalu kecil"): self.pesan = pesan super().__init__(self.pesan) # Menggunakan custom exception def cek_nilai(nilai): if nilai < 10: raise NilaiTerlaluKecilError("Nilai harus lebih besar dari 10") else: print("Nilai valid:", nilai) try: cek_nilai(5) except NilaiTerlaluKecilError as e: print(e) # Output: Nilai harus lebih besar dari 10
7. Menggunakan Raise untuk Melempar Exception
Anda bisa melempar exception secara manual menggunakan statement raise
.
Contoh Kode:
# Melempar exception secara manual def bagi(angka1, angka2): if angka2 == 0: raise ZeroDivisionError("Tidak bisa membagi dengan nol") return angka1 / angka2 try: print(bagi(10, 0)) except ZeroDivisionError as e: print(e) # Output: Tidak bisa membagi dengan nol
Kesimpulan
Error handling adalah teknik penting untuk membuat program yang lebih stabil dan mudah di-debug. Dengan menggunakan try
, except
, finally
, dan raise
, Anda bisa menangani error dengan lebih baik dan memberikan respons yang sesuai saat terjadi masalah.
Tips untuk Pembaca:
- Praktik Langsung: Coba jalankan contoh kode di atas dan modifikasi untuk memahami cara kerja error handling.
- Eksplorasi Jenis Error: Pelajari jenis-jenis error lain seperti
IndexError
,KeyError
, danFileNotFoundError
. - Tantangan: Buat program sederhana seperti kalkulator atau pembaca file dengan error handling yang baik.