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