Penanganan Eksepsi di Python
Di Python dibandingkan dengan bahasa pemrograman lainnya, terdapat sangat banyak situasi yang memicu eksepsi.
Mari kita bahas lebih detail. Misalkan kita memiliki sebuah list:
lst = [1, 2, 3]
Mari akses elemen list yang tidak ada:
print(lts[4])
Setelah kode dijalankan, akan ditampilkan error (eksepsi):
IndexError: list index out of range
Jika kita perlu melanjutkan pekerjaan tanpa
menampilkan eksepsi, kita harus menangkapnya
dengan konstruksi try-except. Konstruksi ini
memiliki sintaksis berikut:
try:
# kode yang dapat memicu eksepsi
except:
# penanganan error
Dalam blok try, tempatkan kode
yang mungkin mengandung eksepsi. Jika
tiba-tiba selama eksekusi kode ini terjadi
situasi eksepsi, maka eksekusi
kode tidak akan berhenti, tetapi akan beralih ke kode blok
except. Dalam blok ini, tuliskan
pesan yang menggambarkan inti dari error yang terjadi
secara akurat.
Jika selama eksekusi blok try
tidak terjadi situasi eksepsi apa pun,
maka kode yang berguna akan dijalankan, sedangkan kode
dari blok except tidak akan dijalankan.
Mari tangkap eksepsi kita saat mengakses
elemen list yang tidak ada. Untuk
itu, di blok try tempatkan kode dengan
potensi error. Dan di blok except
tentukan pencetakan pesan 'error:
elem is not exist' ke konsol:
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
Setelah kode dijalankan, akan ditampilkan:
'error: elem is not exist'
Setelah mempelajari konstruksi try-except
gaya kode yang Anda tulis harus berubah.
Sekarang semua tempat yang berpotensi menimbulkan
situasi eksepsi, perlu dibungkus
dalam try, dan di blok except
tuliskan reaksi terhadap eksepsi tersebut.
Minta dua angka dari pengguna. Bagilah satu dengan yang lain. Tangkap situasi eksepsi pembagian dengan nol.
Minta sebuah angka dari pengguna. Cari akar kuadrat dari angka tersebut. Tangkap situasi eksepsi pengambilan akar dari angka negatif.
Diberikan sebuah list. Minta sebuah bilangan bulat dari pengguna. Dapatkan elemen list yang nomor indeksnya dimasukkan oleh pengguna. Tangkap situasi eksepsi yang akan terjadi jika pengguna memasukkan angka di luar rentang list.
Diberikan kode berikut:
num = '5'
res = num + 2
print(res)
Apa yang salah dengan kode ini? Perbaiki kekurangannya.
Diberikan kode berikut:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
Apa yang salah dengan kode ini? Perbaiki kekurangannya.