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:

pythondef 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:

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # tulostaa 6

Myös funktioissa voidaan määrittää usean tyyppisten poikkeusten kaappaaminen. Luodaan toinen poikkeusluokka ToSmallLength:

pythonclass 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:

pythondef 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:

pythontry:
  lst = [1, 2, 3]
  res = get_sum(lst)
  print(res)
except ToBigLength:
  print('error 1')
except ToSmallLength:
  print('error 2')
Задание 1

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.

Задание 2

Testaa luomasi funktion toimintaa try-except -rakenteella. Samalla kaappaa myös poikkeuksesi.