Функция с исключением в 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
. При
этом также перехватите ваши исключения.