Хвърляне на собствени типове изключения в Python

Изключенията, налични в Python по подразбиране, не винаги могат да задоволят всички наши нужди в различни ситуации. Затова в Python е вградена възможността да се създават изключения от собствен тип.

За да създадете изключение, трябва да декларирате специален ООП клас с помощта на ключовата дума class. Вдясно от нея се прописва името на изключението, а след името в кръгли скоби - типът изключение:

pythonclass Изключение(тип изключение):
  pass

Нека създадем собствен клас ToBigLength за прихващане на твърде дълги списъци. В кръглите скоби на този клас ще пропишем типа изключение, което той ще прихваща. Нека това да бъде изключението Exception. В тялото на класа засега може да се напише pass:

pythonclass ToBigLength(Exception):
  pass

Нека проверим работата на току-що създаденото изключение. За това ще напишем конструкцията try-except, а нашето изключение ще хвърлим с помощта на специалната команда raise:

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

След изпълнение на кода ще се изведе:

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

Създайте изключение за прихващане на отрицателно число.

Задание 2

Създайте изключение за прихващане на нула.