Menggunakan try .. except (exception handling)

Exception Handling jika diartikan secara bebas dapat disebut sebagai ‘teknik penanganan kasus khusus’. Exception handling pada kode program diperlukan saat kita perlu menyiasati adanya perintah yang gagal dieksekusi karena adanya kondisi yang tidak sesuai dengan kondisi yang diharapkan pada kasus normal.

Contoh sederhana kondisi tidak normal misalkan saat program mengharapkan input dari user berupa angka namun user/sistem memberikan nilai ataupun format yang tidak valid. Jika kasus khusus tersebut tidak diberikan penanganan khusus maka program dapat terhenti karena error.

Contoh kasus

Jalankan contoh kode di bawah, kemudian coba berikan nilai seharusnya (angka) dan bandingkan hasilnya dengan memberikan nilai yang tidak sesuai (misal: huruf).

Jika pada contoh di atas user memberikan nilai non angka saat diminta, maka program akan mengalami fatal error dan keluar sebelum baris kode berikutnya dijalankan .

Menambahkan exception handling

Untuk menangani kasus pada contoh di atas kita dapat memodifikasi kode dan menambahkan exception handling untuk mendeteksi terjadinya kesalahan. Dengan menambahkan exception handling, jikapun terjadi kesalahan program dapat tetap melanjutkan ke baris berikutnya.

Syntax exeption handling

try:
    # blok kode ini dieksekusi terlebih dahulu
except:
    # eksekusi pindah ke blok except bila pada blok try terjadi error
    # eksekusi pindah tanpa melanjutkan sisa kode pada blok try

Solusi untuk kasus sebelumnya

Jalankan contoh berikut untuk lebih jelasnya, berikan nilai yang yang sama seperti saat anda menghasilkan error pada contoh kode sebelumnya dan perhatikan hasilnya.

Contoh lain

Exception handling saat konversi datetime

Kode di bawah adalah contoh solusi saat user memasukkan tanggal dengan format yang salah.

from datetime import datetime as dtm

tanggal_valid = False

while not tanggal_valid:
  dt_input = input('Masukkan tanggal lahir anda dengan format seperti contoh berikut: 31-12-1995\n')
  try:
    tanggal_lahir = dtm.strptime(dt_input,'%d %m %Y')
    tanggal_valid = True
  except:
    print('Anda memasukkan nilai dengan format yang salah')

print(tanggal_lahir)

Semoga bermanfaat,

Salam

You may also like...

Berikan komentar