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 *

Pengalaman Pengguna Game Penghasil Saldo DANA Lebih Cepat Adaptif Dan Efisien Dibawa Oleh Inovasi Teknologi
Pergeseran Mutu Produksi Kosmetik Terdeteksi Lebih Akurat Berkat Aliran Data Langsung
Pengalaman Pengguna Semakin Responsif Adaptif Dan Efisien Berkat Perkembangan Teknologi Modern
Momentum Tetap Terarah Dan Terkendali Dipertahankan Melalui Taktik Mode Pemburu Sic Bo Live
Keputusan Tetap Terukur Dalam Game Online Dipertahankan Melalui Pengelolaan Modal Cerdas
Kapitalisasi Pasar Dan Inovasi Kasino Online Berubah Di Tengah Disrupsi Teknologi Modern
Strategi Baru Untuk Meningkatkan Keunggulan Kompetitif Dibuka Melalui Business Model Canvas Mahjong Ways
Kualitas Sistem Mahjongways Kasino Online Dipahami Melalui Identifikasi Nilai Pembayaran Game Penghasil Saldo DANA
Perspektif Baru Dalam Menganalisis Perkembangan Mahjong Ways Dibuka Melalui Modernisasi Strategi
Kasino Menjadi Studi Sistem Informasi Bagi Mahasiswa Melalui Pelatihan Enterprise Architecture
Mahjongways Kasino Online Dijadikan Acuan Strategi Marketing dalam Lingkungan Pemerintahan
Keamanan Informasi Jadi Fondasi Utama Layanan Konsultasi Kosmetik Berbasis Teknologi
Teknologi Pemantauan Membantu Mengukur Frekuensi Pembayaran secara Lebih Objektif dan Terukur
Kajian Statistik Pola RTP Menyoroti Perkembangan Teknologi Neural Sintetis Regulatoris
Simulasi Statistik Membuka Pendekatan Baru Memahami Mahjong Game Sungai Penuh secara Terukur
Statistik Objektif Membantu Membaca Pola Mahjong Game Sungai Penuh dengan Lebih Rasional
Strategi Mahjong Game Sungai Penuh Makin Terarah melalui Pendekatan Statistik Modern
Pendekatan Data Objektif Membantu Mengkaji Mahjong Game Saldo DANA Sungai Penuh secara Lebih Terstruktur
Mahjong Game Sungai Penuh Dikaji lewat Simulasi Statistik untuk Membaca Pola Aktivitas
Aturan Mahjong Digital dari Dua Kartu Awal hingga Penentuan Rentang Nilai Game Penghasil Saldo DANA
Pendekatan Adaptif MahjongWays Kasino Online Membantu Menjaga Keseimbangan Anggaran Hiburan
Kemunculan Simbol Unik MahjongWays Kasino Online Perlu Dibaca Secara Lebih Rasional
Mahjong Ways Menarik Minat Pemain di Tengah Ketatnya Persaingan Game Digital
Pengaturan Tempo MahjongWays Kasino Online Tidak Menentukan Munculnya Kombinasi Khusus
Starlight Princess Kembali Merebut Perhatian Pemain MBG Berkat Daya Tariknya
Membaca Pola Mahjong Ways dan Tren Permainan Lewat Data Saldo DANA Terbaru
Disiplin Mental MahjongWays Kasino Online Membantu Mencegah Keputusan Finansial yang Terlalu Impulsif
Mengenal Sweet Bonanza sebagai Game Digital Online dengan Tema Manis yang Menarik
Rotasi Awal MahjongWays Kasino Online Bukan Tolok Ukur Kemurahan Sistem Permainan
Menelusuri Strategi Terbaik dalam Bermain Game Penghasil Saldo DANA Secara Lebih Mendalam