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

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

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

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

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

pythonlst = [1, 2, 3, 4]

print(get_sum(lst)) # выведет 6

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

pythonclass ToSmallLength(Exception):
  pass

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

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

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

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

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

Задание 2

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