Menangkap Jenis Pengecualian Berbeza dalam Python
Dalam kod yang sama, mungkin perlu menangkap pelbagai jenis pengecualian.
Katakan kita perlu menangkap pengecualian apabila membahagi dengan sifar. Untuk ralat jenis ini, pengecualian yang keluar ialah:
ZeroDivisionError: division by zero
Untuk menangkapnya, nama pengecualian hendaklah
ditulis dalam blok except:
try:
print(1 / 0)
except ZeroDivisionError:
print('ralat: jangan bahagi dengan sifar')
Juga, katakan kita mempunyai senarai:
lst = [1, 2, 3]
Jika dalam blok try kita letakkan kod dengan
potensi ralat lain, contohnya, mencetak
elemen yang tidak wujud, maka pengecualian,
yang tidak ditangkap oleh blok except, akan
terus keluar dan dicetak dalam konsol. Ini
akan mengakibatkan kerja kod terhenti:
lst = [1, 2, 3]
try:
print(lst[4]) # akan menghasilkan IndexError: list index out of range
except ZeroDivisionError:
print('ralat: jangan bahagi dengan sifar')
Untuk menyelesaikan situasi ini, perlu dinyatakan dalam setiap blok nama jenis pengecualian yang sepadan. Mari tambahkan pengecualian untuk elemen yang tidak wujud dalam kod kita:
try:
print(lst[4])
except ZeroDivisionError:
print('ralat: jangan bahagi dengan sifar')
except IndexError:
print('ralat: elemen tidak wujud')
Diberi kod berikut:
txt = '2'
res1 = txt + 3
res2 = txt1
Tuliskan kod untuk menangkap pengecualian
yang terdapat dalam pembolehubah
res1 dan res2.