Python 函数异常处理:装饰器实现错误捕获与默认值返回
可以使用 try except 语句来捕获报错并返回默认值,并结合装饰器来实现打印日志的功能。
以下是一个示例代码:
import logging
logging.basicConfig(filename='example.log', level=logging.ERROR)
def handle_error(default_value):
def decorator(func):
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except Exception as e:
logging.error(str(e))
return default_value
return wrapper
return decorator
@handle_error(default_value=None)
def my_function():
# some code that may raise an error
return result
在这个例子中,我们定义了一个 handle_error 装饰器,它接受一个默认值作为参数,并返回一个装饰器函数。装饰器函数 wrapper 接受任何参数和关键字参数,并调用传入的函数 func。如果 func 抛出异常,装饰器会将其捕获并将其记录到一个日志文件中。然后,装饰器返回默认值。
在上面的示例中,我们使用了 logging 模块来记录日志。您可以根据自己的需要来配置日志级别和文件名。
要使用这个装饰器,只需在函数定义之前添加 @handle_error(default_value) 装饰器即可。在调用函数时,如果函数抛出异常,它将返回默认值,并记录日志。
注意:这个装饰器只能处理函数抛出的异常,不能处理语法错误和其他编译时错误。
原文地址: https://www.cveoy.top/t/topic/mC1a 著作权归作者所有。请勿转载和采集!