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