# Функция с исключением в Python

Исключения очень удобно выбрасывать, прописывая их в функции с помощью условий.

Давайте сделаем функцию `get_sum`, которая будет выводить сумму элементов списка только, если длина списка меньше или равна `3`. В противном случае, пусть выбрасывается наше исключение `ToBigLength`:

`def get_sum(lst): if len(lst) <= 3: return sum(lst) else: raise ToBigLength`

Теперь передадим в функцию `get_sum` список и выведем функцию в консоль:

`lst = [1, 2, 3, 4] print(get_sum(lst)) # выведет 6`

Также в функциях можно задавать перехват нескольких типов исключений. Давайте создадим еще один класс исключений `ToSmallLength`:

`class ToSmallLength(Exception): pass`

Теперь пропишем в функции условие, если длина списка равна нулю, то пусть выбросится `ToSmallLength`. Если же не перехватится ни одно исключение, то пусть выведется сумма всех элементов списка:

`def get_sum(lst): if len(lst) > 3: raise ToBigLength if len(lst) == 0: raise ToSmallLength else: return sum(lst)`

Для удобства можно заключить список, который будет передаваться в параметр функции, саму функцию и ее вызов в блок `try`. А перехват наших двух исключений разместим в блоках `except`:

`try: lst = [1, 2, 3] res = get_sum(lst) print(res) except ToBigLength: print('error 1') except ToSmallLength: print('error 2')`

Создайте функцию, которая параметром будет принимать число. В ней пропишите условия, если число отрицательное и равно нулю, то пусть выбросятся соответствующие исключения. в противном случае пусть число будет умножено на `3`.

Проверьте работу созданную вами функции с помощью конструкции `try-except`. При этом также перехватите ваши исключения.

← →
↑