Oma erandite tüüpide loomine Pythonis

Pythonis vaikimisi olevad erandid ei pruugi alati rahuldada kõiki meie vajadusi erinevates olukordades. Seetõttu on Pythonisse sisseehitatud võimalus luua oma tüüpi erandeid.

Erandi loomiseks tuleb deklareerida spetsiaalne OOP-klassi, kasutades võtmesõna class. Sellest paremale kirjutatakse erandi nimi ja pärast nime ümara sulgudes - erandi tüüp:

pythonclass Erand(erandi tüüp):
  pass

Loome oma klassi ToBigLength liiga pikkade loendite püüdmiseks. Selle klassi ümarsulgudesse kirjutame erandi tüübi, mida see püüdma hakkab. Olgu selleks erand Exception. Klassi kehas võib praegu kirjutada pass:

pythonclass ToBigLength(Exception):
  pass

Katsetame just loodud erandi tööd. Selleks kirjutame konstruktsiooni try-except ja käivitame oma erandi spetsiaalse käsuga raise:

pythontry:
  raise ToBigLength
except ToBigLength:
  print('error: list is too big')

Pärast koodi täitmist kuvatakse:

python'error: list is too big'
Задание 1

Loo erand negatiivse arvu püüdmiseks.

Задание 2

Loo erand nulli püüdmiseks.