Fungsi dengan Pengecualian dalam Python
Pengecualian sangat mudah untuk dibangkitkan, dengan menetapkannya dalam fungsi menggunakan syarat.
Mari kita buat fungsi get_sum,
yang akan mengembalikan jumlah elemen
senarai hanya jika panjang senarai kurang
daripada atau sama dengan 3. Jika tidak,
biarkan pengecualian kita ToBigLength dibangkitkan:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Sekarang mari kita berikan senarai kepada fungsi get_sum
dan cetak fungsi tersebut ke konsol:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # akan mengeluarkan 6
Dalam fungsi, kita juga boleh menangkap beberapa
jenis pengecualian. Mari kita
buat satu lagi kelas pengecualian ToSmallLength:
class ToSmallLength(Exception):
pass
Sekarang mari kita tetapkan syarat dalam fungsi, jika
panjang senarai sama dengan sifar, biarkan
ToSmallLength dibangkitkan.
Jika tiada pengecualian ditangkap,
maka biarkan jumlah semua elemen senarai dikembalikan:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Untuk kemudahan, kita boleh letakkan senarai yang
akan diberikan kepada parameter fungsi,
fungsi itu sendiri, dan panggilannya dalam blok try.
Dan penangkapan kedua-dua pengecualian kita akan diletakkan
dalam blok except:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Buat fungsi yang parameternya akan
menerima satu nombor. Di dalamnya, tetapkan syarat,
jika nombor itu negatif dan sama dengan sifar,
biarkan pengecualian yang sepadan dibangkitkan.
Jika tidak, biarkan nombor itu
didarabkan dengan 3.
Uji fungsi yang anda buat
menggunakan konstruksi try-except. Pada
masa yang sama, tangkap pengecualian anda juga.