Exception Handler
Sekali program Anda mendapatkan error, maka program terhenti. Perhatikan code berikut
def dividen(numberOne, numberTwo):
result = numberOne/numberTwo
print(result)
dividen(10,2)
dividen(4,2)
dividen(3,0)
dividen(5,5)
Saat Anda jalankan, program akan terhenti di line ke 7 dan tidak melanjutkan proses ke bawah. ZeroDivisionError keluar ketika program mencoba membagi angka dengan angka nol. Berhentinya program di tengah jalan ini sering disebut dengan istilah crash.
Solusi agar program Anda tidak crash, maka terapkan syntax try except. Berikut contoh codenya
def dividen(numberOne, numberTwo):
try:
result = numberOne/numberTwo
except ZeroDivisionError:
result = 'illegal division by zero'
print(result)
dividen(10,2)
dividen(4,2)
dividen(3,0)
dividen(5,5)
Program sebelumnya akan berhenti di tengah jalan. Setelah di tambahkan try exception, program akan tetap berjalan walaupun terjadi error di tengah jalan.
Cobalah menelusuri setiap error yang akan terjadi di program Python Anda. Daftar exception bawaan Python dapat dilihat di sini
Apabila anda menentukan error secara bebas dan tidak menentukan apapun, maka ubah codenya menjadi seperti ini :
try:
print(x)
except Exception as e:
print("error :",e)
Perhatikan codingan diatas, error yang dihasilkan try except dapat diambil message nya dan Anda dapat membuat perintah sendiri dari error tersebut.
Exception ada keyword else dan finally, else akan di jalankan ketika tidak ada error yang ditemukan, finally akan di jalankan apapun kondisinya (ada error maupun tidak ada error). Berikut contoh codenya :
try:
print("me")
except NameError as e:
print("error :",e)
else:
print("nothing")
try:
print(x)
except NameError as e:
print("error :",e)
finally:
print("nothing")
Raise Exception
Anda bisa membangkitkan error sendiri dengan code berikut:
x = 7
if x % 2 != 0:
raise Exception("Not even number")
Error yg dibangkitkan dapat diubah tipe errornya secara bebas, berikut contoh codenya:
x = 7
if x % 2 != 0:
raise ArithmeticError("Not even number")