Belajar Dasar Python #15 : Exception Handling

Exception Handling

pada saat pembuatan program kita tentunya sering melakukan kesalahan, yang menyebabkan error ketika dijalankan. ada dua jenis error yang ada pada python yaitu Syntax error dan Exception, syntax error terjadi dikarenakan adanya kesalahan dalam penulisan syntax, sedangkan exception ini adalah error yang terjadi saat program sedang berjalan bahkan syntax yang kita masukkan sudah benar. berikut adalah contoh syntax error.

a = 10
if a>10
    print("a lebih besar dari 10")

Output:

  File "exception.py", line 2
    if a>10
          ^
SyntaxError: invalid syntax

berikut contoh exception.

a = 2
b = 0
hasil = a/b

Output:

Traceback (most recent call last):
  File "exception.py", line 3, in 
    hasil = a/b
ZeroDivisionError: division by zero

ZeroDivisionError 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 terjadi

berikut 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 0

bila 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.

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')
except ValueError:
    print('silahkan masukkan angka')

Output:

masukkan nilai a 10
masukkan nilai b r
silahkan masukkan angka

pada 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.

try:
    a = int(input('masukkan nilai a '))
    b = int(input('masukkan nilai b '))
    print('hasil a/b adalah',a/b)
except Exception as err:
    print(err)

Output:

masukkan nilai a 10
masukkan nilai b 0
division by zero

pada 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.

try:
    a = int(input('masukkan nilai a '))
    b = int(input('masukkan nilai b '))
except Exception as err:
    print(err)
else:
    print('hasil a/b adalah',a/b)

Output:

masukkan nilai a 10
masukkan nilai b r
invalid literal for int() with base 10: 'r'

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.

try:
    a = int(input('masukkan nilai a '))
    b = int(input('masukkan nilai b '))
    hasil = a/b
except Exception as err:
    print(err)
else:
    print('hasil a/b adalah',hasil)
finally:
    print('blok kode finally dijalankan')

Output:

masukkan nilai a 20
masukkan nilai b 0
division by zero
blok kode finally dijalankan

pelajari lebih lanjut pada link berikut.

https://docs.python.org/3/tutorial/errors.html 

Tutorial selanjutnya kita akan membahas apa itu modul,  bagaimana cara membuat modul dan mengimport modul.

Artikel Terkait

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Studi Kasus Mahjong Ways Menunjukkan Perubahan Cara Pemain Membaca Susunan Simbol Akibat Baris Tambahan
Sering Terjadi Kesalahpahaman Bahwa Transformasi Simbol Emas Mahjong Ways Menandakan Hasil Putaran Berikutnya
Perbandingan Tampilan Antara Mahjong Ways Dan Sekuelnya Dalam Menyajikan Informasi Fitur Di Layar Seluler Modern
Direkapitulasi Perjalanan Mahjong Ways Dari Tema Tradisional Menuju Industri Game Digital Modern
Tanpa Mencampurkan Dengan Peran Wild, Fungsi Scatter Mahjong Ways Dapat Dikenali Dalam Susunan Kemenangan
Penyelaman Mengungkap Perubahan Dan Makna Baru Dunia Baccarat Di Era Digital
Media Gaming Mengungkap Perjalanan Mahjong Ways 2 Dalam Menghadapi Perubahan Tren Industri Hiburan Digital
Baccarat Ditampilkan Dalam Catatan Perubahan Platform Media Gaming Masa Kini Yang Mengubah Cara Bermain
Pergeseran Media Modern Menjadikan Wacana Kasino Online Sebagai Sorotan Baru Masyarakat
Perubahan Gaya Platform Membawa Bakarat Digital Menjadi Sorotan Baru Dalam Percakapan Modern
Perkembangan Komunitas Mahjong Ways Digital Dorong Kebangkitan Popularitas di Indonesia
Tren Mahjong Ways Mobile Gaming Terbaru Hadirkan Kebangkitan Jadi Sorotan Utama
Kenapa Mahjong Ways Tetap Viral? Alasan Ini Bikin Kaget!
Fenomena Game Bertema Oriental Bangkit Kembali, Mahjong Ways Jadi Sorotan Utama
Strategi Mahjong Ways Tetap Digemari Di Tengah Persaingan Game Online Diungkap Media Digital
Transformasi Industri Mahjong Ways Digital Perjalanan Panjang Menuju Inovasi
Kebangkitan Platform Game Mahjong Ways dalam Era Perkembangan Digital
Meski Zaman Berubah, Mahjong Ways Tetap Favorit! Ini Rahasianya
Mahjong Ways Masih Jadi Perbincangan Hangat! Komunitas Gaming Ungkap Alasannya
Evolusi Mahjong Ways Dari Masa Ke Masa Yang Bikin Penasaran Diungkap Laporan Industri
Mahjong Ways Tetap Eksis! Ini Rahasia Bertahan di Tengah Persaingan Industri Game Ketat
Identitas Visual Mahjong Ways Bikin Penggemar Terpikat! Media Online Soroti Konsistensinya
Tren Digital Menggairahkan Lagi! Game Penghasil Uang Cepat Jadi Sorotan Publik
Kenapa Game Penghasil Uang Cepat Menarik Minat Pemain Indonesia? Ini Alasannya!
Benarkah Game Penghasil Uang Cepat Makin Diminati? Faktanya Mengejutkan!
Majestic Treasures Menarik Perhatian Komunitas Game Digital Lewat Pesona Khas dan Ragam Strategi Menarik
Mahjong Ways 2 Ramai Dibahas Lagi! Ini Dampak Besar pada Industri Game Digital Indonesia
Mahjongways Kasino Online Viral di Komunitas Game dan Mulai Disebut sebagai Sumber Penghasilan Baru
Mahjong Ways Kembali Jadi Sorotan! Penggemar Game Penghasil Uang di Indonesia Serbu
Game Penghasil Uang Mulai Dilirik Media Game Mobile di Tengah Pergeseran Tren Global