Pencegahan Pengecualian dalam Python
Dalam Python berbanding dengan bahasa pengaturcaraan lain, terdapat banyak situasi yang menyebabkan pengecualian.
Mari kita teliti dengan lebih lanjut. Katakan kita mempunyai senarai:
lst = [1, 2, 3]
Mari akses elemen senarai yang tidak wujud:
print(lts[4])
Selepas kod dilaksanakan, ralat (pengecualian) akan dipaparkan:
IndexError: list index out of range
Jika kita perlu meneruskan kerja tanpa memaparkan pengecualian, ia harus ditangkap menggunakan konstruksi try-except. Ia mempunyai sintaks berikut:
try:
# kod yang menyebabkan pengecualian
except:
# pemprosesan ralat
Dalam blok try, letakkan kod yang mungkin mengandungi pengecualian. Jika semasa pelaksanaan kod ini situasi pengecualian berlaku, pelaksanaan kod tidak akan berhenti, tetapi akan beralih ke kod dalam blok except. Dalam blok ini, tuliskan mesej yang menerangkan intipati ralat yang berlaku dengan tepat.
Jika semasa pelaksanaan blok try tiada situasi pengecualian berlaku, maka kod berguna hanya akan dilaksanakan, dan kod dari blok except tidak akan dilaksanakan.
Mari tangkap pengecualian kita apabila mengakses elemen senarai yang tidak wujud. Untuk melakukan ini, letakkan kod dengan ralat potensi dalam blok try. Dan dalam blok except, tentukan output mesej 'error: elem is not exist' ke konsol:
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
Selepas kod dilaksanakan, output akan menjadi:
'error: elem is not exist'
Selepas mempelajari konstruksi try-except, gaya kod yang anda tulis sepatutnya berubah. Sekarang semua tempat di mana situasi pengecualian mungkin berlaku perlu dibungkus dalam try, dan dalam blok except tulis tindak balas terhadap pengecualian ini.
Tanya pengguna dua nombor. Bahagikan satu dengan yang lain. Tangkap situasi pengecualian pembahagian dengan sifar.
Tanya pengguna satu nombor. Cari punca kuasa dua nombor ini. Tangkap situasi pengecualian pengambilan punca daripada nombor negatif.
Diberi satu senarai. Tanya pengguna satu integer. Dapatkan elemen senarai yang nombornya dimasukkan oleh pengguna. Tangkap situasi pengecualian yang akan berlaku jika pengguna memasukkan nombor di luar julat senarai.
Diberi kod berikut:
num = '5'
res = num + 2
print(res)
Apakah masalah dengan kod ini? Betulkan kelemahannya.
Diberi kod berikut:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
Apakah masalah dengan kod ini? Betulkan kelemahannya.