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