Output:
File "exception.py", line 2 if a>10 ^ SyntaxError: invalid syntaxberikut contoh exception.
a = 2 b = 0 hasil = a/bOutput:
Traceback (most recent call last): File "exception.py", line 3, in hasil = a/b ZeroDivisionError: division by zeroZeroDivisionError merupakan salah satu jenis exception. pada saat exception terjadi python akan menampilkan traceback, detail error terjadi, dan program akan langsung dihentikan. Tentunya kita tidak ingin program kita berhenti dikarenakan ada error yang terjadi, kita bisa mengatasi ini dengan beberapa cara.
try, except
pada python exception bisa di atasi dengan try except statement. dimana kode yang berpotensi menimbulkan exception/error kita masukkan ke dalam blok try, dan pada blok except dimasukkan kode yang akan dieksekusi saat terjadi error. berikut strukturnya.
try: kode yang berpotensi error except: kode saat error terjadiberikut contoh penggunaannya.
try: a = int(input('masukkan nilai a ')) b = int(input('masukkan nilai b ')) print('hasil a/b adalah',a/b) except ZeroDivisionError: print('masukkan angka selain 0')Output:
masukkan nilai a 10 masukkan nilai b 0 masukkan angka selain 0bila anda memasukkan nilai b atau penyebutnya 0, hal ini tidak akan menimbulkan error dikarenakan kita kita sudah mengantisipasinya dengan menggunakan try except. blok kode except akan dieksekusi jika dideteksi terjadi error pada blok kode try. pada contoh diatas blok except akan mendeteksi segala jenis Exception, kita pun dapat mendeteksi exception tertentu dengan menambahkan nama exception setelah keyword except.
try: a = int(input('masukkan nilai a ')) b = int(input('masukkan nilai b ')) print('hasil a/b adalah',a/b) except ZeroDivisionError: print('masukkan angka selain 0')Output:
masukkan nilai a 10 masukkan nilai b r Traceback (most recent call last): File "exception.py", line 7, in b = int(input('masukkan nilai b ')) ValueError: invalid literal for int() with base 10: 'r'pada contoh diatas, bila anda mengisi 0 untuk penyebutnya, tidak akan terjadi error dikarenakan kita sudah mengantisipasinya, akan tetapi bila anda memasukkan huruf error akan terjadi, ini disebut ValueError dikarenakan huruf tidak bisa dikonversi ke bentuk integer. untuk mengatasi ini kita perlu membuat blok except yang baru dan memasukkan ValueError sebagai nama exception, dengan ini program tidak akan menghasilkan error.
Output:
File "exception.py", line 2 if a>10 ^ SyntaxError: invalid syntax0pada contoh diatas kita sudah menangani error dengan menampilkan keterangan. anda pun dapat menyimpan exception yang terjadi kedalam variabel, dan menampilkan error tersebut sebagai keterangan. berikut contohnya.
File "exception.py", line 2 if a>10 ^ SyntaxError: invalid syntax1Output:
File "exception.py", line 2 if a>10 ^ SyntaxError: invalid syntax2pada contoh diatas apapun exception yang terjadi akan disimpan kedalam variabel err dan ditampilkan sebagai keterangan, ini sangat berguna saat anda melakukan debugging.
blok kode else juga dapat ditambahkan. dalam beberapa situasi mungkin anda ingin menjalankan suatu kode, jika kode yang ada pada blok try berjalan tanpa error.
File "exception.py", line 2 if a>10 ^ SyntaxError: invalid syntax3Output:
bila anda memasukkan kedua variabel dengan angka, maka blok kode except dilewati dan blok kode else akan dieksekusi. bila anda memasukkan huruf, maka blok kode except akan dieksekusi dan blok kode else dilewati. walaupun error akan terjadi bila anda memasukkan angka nol pada penyebutnya, dikarenakan error terjadi pada blok kode else.
try, except, finally
dan yang terakhir anda dapat menambahkan blok kode finally. ini akan selalu dieksekusi apapun kasusnya.
File "exception.py", line 2 if a>10 ^ SyntaxError: invalid syntax5Output:
File "exception.py", line 2 if a>10 ^ SyntaxError: invalid syntax6pelajari lebih lanjut pada link berikut.
//docs.python.org/3/tutorial/errors.html
Tutorial selanjutnya kita akan membahas apa itu modul, bagaimana cara membuat modul dan mengimport modul.