Penanganan error di python atau exception handling

penanganan-error-di-python-atau-exception-handling


Penanganan error di python atau exception handling - Hmphhhh Selamat sore sobs-sobs, gimana kabarnya ? semoga sehat walafiat baik jiwanya serta raganya. oke sebelum lebih jauh masuk pada materi pembahasan kali sobs-sobs disarankan menyiapkan seperangkat alat tempur yaitu kopi serta dorongannya yaitu gorengan. hehehe

Materi pembahasan kali masih seputar materi fundamental atau dasar yaitu penangan error di dede gemezzz (python) ini. oke mungkin sobs-sobs ada yang belum paham tentang arah dan tujuannya pada materi kali ini, tidak apa-apa sobs gua juga dulu begitu yang terpenting sobs-sobs silahkan diikuti materi pembahasan kali ini. dan ingat jangan terlalu terburu-buru, nikmati kopi dan santai sambil membacanya.


1. Syntax Error

oke dari namanya saja sobs-sobs sudah terbayang apa yang menjadi permasalahan pada kode kita. yapsss tentunya adalah syntax. jika sobs-sobs menemuinya kita tidak bisa menghandle kesalahan seperti ini, jalan satu-satunya adalah kita harus memperbaiki kode kita. seperti contoh dibawah ini sobs



print("sruputkode.com"))
print("mari kita sruput kopinya")

jika sobs-sobs eksekusi maka akan error dengan keterangan seperti dibawah ini


Oleh karena itu mau tak mau kita harus memperbaiki kode kita agar program kita bisa terus berjalan.

2. Exception

berbeda dengan syntax error, kita bisa melakukan penanganan untuk jenis error exception, sehingga program kita bisa terus dijalankan atau diberhentikan tapi dengan menampilkan pesan kesalahan yang lebih dimenerti sobs-sobs. untuk  contoh sederhananya silahkan perhatikan contoh dibawah ini sobs-sobs


angka1 = 0
angka2 = 0
hasil = angka1 / angka2
print(hasil)

Silahkan sobs-sobs jalankan kode diatas maka akan tampil error seperti dibawah ini



diatas merupakan exception error bawaan python. untuk melihat daftar exception python beserta penyebabnya sobs-sobs silahkan bisa klik disini.

lalu bagaimana kita ingin menampilkan pesan error atau menghasilkan sebuah exception dan membuat error tersendiri dengan kondisi yang kita tentukan. tenang sobs-sobs jangan khawatir. simaks ya cara dibawah ini.

- raise

kita bisa menggunakan keyword raise lalu diikuti dengan class Exception beserta pesannya. untuk lebih jelasnya silahkan simaks contoh dibawah ini sobs.


nilai_uas_bambang = 50

if nilai_uas_bambang < 70:
	raise Exception("Maaf nilai anda dibawah standar...")
else:
	print("Selamat anda lulus...")

Silahkan dijalankan sobs-sobs kode diatas, maka akan didapati error seperti dibawah ini.


silahkan sobs-sobs buat contoh lain dengan menggunakan kondisi apapun.

- assert

berbeda dengan raise namun tujuan tetap sama, jika kita mengunakan assert kita harus juga menyertakan kondisi yang menyebabkan sebuah exception. yang perlu diperhatikan ya sobs untuk pengkodisian ini adalah kondisi dimana program berjalan. mugkin sobs-sobs bingung. untuk lebih jelasnya detail dibawah ini sobs-sobs

def test(nama):
	assert nama != "sruputkode","Maaf anda kurang beruntung"
	print(f"selamat {nama} anda menang 1 Miliyar")

nama = input("masukan nama : ")

test(nama)

Jika sobs-sobs jalankan kode diatas dan kita inputkan sruputkode maka akan muncul 


dari kode diatas assert nama != "sruputkode","Maaf anda kurang beruntung" artinya kita melakukan pengkondisian program akan terus berjalan selagi input nama bukan sruputkode dan jika input nama sruputkode maka akan error AssertionError.
gimana sobs-sobs ?? masih bingung ?? jika bingung sobs-sobs disarankan membuat studi kasus sendiri.

- try - expect

exception handling ini paling banyak digunakan sobs-sobs. oke untuk lebih jelasnya sobs-sobs silahkan lihat contoh dibawah ini.


try:
	angka1 = 10
	angka2 = 0
	hasil = angka1 / angka2
except:
	print("Ups terjadi kesalahan")

contoh diatas sebenarnya akan menghasilkan exception ZeroDivisionError didalam matematika yaitu bilangan yang dibagi 0 tidak terdefinisi.



* try : adalah blok yang memungkinkan timbulnya error atau exception, seperti contoh diatas yaitu hasil = angka1 / angka2 disitu ada kemungkinan error jika pembagiannya 0.

* except : adalah blok yang akan dieksekusi jika error itu terjadi.

jika kita tidak menuliskan class exception seperti contoh diatas maka akan berlaku untuk semua jenis exception. untuk lebih jelasnya silahkan lihat contoh dibawah ini sobs-sobs

try:
	angka1 = 10
	angka2 = 2
	hasil = angka1 / angka2
	# variabel nama tidak terdefinisi
	# NameError
	print(nama)
except:
	print("Ups terjadi kesalahan")

jika kita jalankan kode diatas maka blok except yang akan dieksekusi karena sebenarnya variabel nama tidak terdefinisi atau belum didefinisikan dan exceptionnya adalah NameError.

jika kita ingin lebih spesifikasi untuk menangani exception apa saja yang kita inginkan maka kita harus menuliskan class Exceptionnya setelah keyword except. berikut ini contohnya sobs-sobs

try:
	angka1 = 10
	angka2 = 2
	hasil = angka1 / angka2
	print(nama)
except ZeroDivisionError:
	print("maaf bilangan tidak bisa dibagi 0")
except NameError:
	print("maaf variabel belum terdefinisi")
except:
	print("Upss terjadi kesalahan")

Silahkan sobs-sobs tebak blok except mana yang akan diesekusi ?? yap blok except ZeroDivisionError yang akan dieksekusi. 

selanjutnya terkadang kita males untuk membuat pesan error, kita maunya pesan error yang sudah digenerate python saja, untuk keperluan itu perhatikan contoh dibawah ini ya sobs

try:
	angka1 = 10
	angka2 = 2
	hasil = angka1 / angka2
	print(nama)
except ZeroDivisionError as e:
	print(e)
except NameError as e:
	print(e)
except Exception as e:
	print(e)

Ya penulisannya kita hanya menambahkan keyword as lalu diikuti variabel. silahkan sobs-sobs jalankan program diatas.

lanjut

- try - except - else

apalagi nih bang ?? sebenernya ini merupakan tambahan dari pola sebelumnya sobs hanya saja ada penambahan blok else.

else : adalah blok yang akan dieksekusi jika tidak ada exception yang terjadi.

untuk lebih jelasnya silahkan lihat contoh dibawah ini sobs-sobs

try:
	angka1 = 10
	angka2 = 2
	hasil = angka1 / angka2
except ZeroDivisionError as e:
	print(e)
except NameError as e:
	print(e)
except Exception as e:
	print(e)
else:
	print(f"hasil pembagian : {hasil}")


yapp contoh kode diatas blok else yang akan dieksekusi karena sama sekali tidak ada exception yang terjadi. untuk lebih jelas lagi silahkan sobs-sobs coba ganti nilai variabel angka2 dengan 0 maka blok else tidak akan dieksekusi.

next

- try - except - else - finally

disini ada tambahan blok lagi yaitu blok finally.
finally : blok yang akan tetap dieksekusi walaupun terjadi exception sobs
silahkan lihat contoh dibawah ini sobs.

try:
	angka1 = 10
	angka2 = 0
	hasil = angka1 / angka2
except ZeroDivisionError as e:
	print(e)
except NameError as e:
	print(e)
except Exception as e:
	print(e)
else:
	print(f"hasil pembagian : {hasil}")
finally:
	print("sruputkode oyeee")

jika kita jalankan kode diatas maka blok except ZeroDivisionError dan blok finally akan dijalankan






Oke sobs-sobs sobs-sobs kita dipenghujung pembahasan materi kali ini karena dirasa sudah cukup, untuk materi python fundamental lain sobs-sobs bisa lihat disini.

See you next time.


Posting Komentar untuk "Penanganan error di python atau exception handling"