Я хочу написать функцию, которая проверяет условие (с настраиваемыми исключениями), и если исключения не возникают, она применяет функцию и возвращает результат.
# Custom exceptions
class NegativeNumber(Exception):
pass
class BigNumber(Exception):
pass
def add_two(number):
return number + 2
def apply_function(number, f):
def check_condition(number, f):
try:
if number < 0:
raise NegativeNumber
if number > 10:
raise BigNumber
except NegativeNumber:
return ("Negative Number")
except BigNumber:
return ("Big Number")
return (f(number))
return check_condition(number, f)
apply_function(5, add_two)
Можно ли лучше написать этот код с использованием декораторов?