АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗pyPmExcFu 82 of 129 menu
Долгожданный Бесплатный курс по выкладке сайта на хостинг. МЫ УЖЕ НАЧАЛИ! Присоединяйтесь к нам!

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

enru