Poikkeusfunktio Pythonissa
Poikkeuksia on erittäin kätevää heittää, määrittelemällä ne funktioiden ehtoihin.
Tehdään funktio get_sum,
joka tulostaa listan alkioiden summan
vain, jos listan pituus on pienempi
kuin tai yhtä suuri kuin 3. Muussa tapauksessa
heitetään oma poikkeus ToBigLength:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Nyt välitetään funktiolle get_sum
lista ja tulostetaan funktio konsoliin:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # tulostaa 6
Myös funktioissa voidaan määrittää usean
tyyppisten poikkeusten kaappaaminen. Luodaan
toinen poikkeusluokka ToSmallLength:
class ToSmallLength(Exception):
pass
Nyt määritetään funktioon ehto, jos
listan pituus on nolla, heitetään
ToSmallLength. Jos mitään poikkeusta
ei tule, tulostetaan
kaikkien listan alkioiden summa:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Käytön helpottamiseksi voidaan sijoittaa lista, joka
välitetään funktion parametriin,
itse funktio ja sen kutsu try -lohkoon.
Ja sijoittaa kahden poikkeuksemme kaappaus
except -lohkoihin:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Luo funktio, joka ottaa parametrikseen
luvun. Siinä määritä ehdot,
jos luku on negatiivinen ja yhtä suuri kuin nolla, niin
heitetään vastaavat poikkeukset.
muussa tapauksessa luku kerrotaan
3:lla.
Testaa luomasi funktion toimintaa
try-except -rakenteella.
Samalla kaappaa myös poikkeuksesi.