可以使用 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) 装饰器即可。在调用函数时,如果函数抛出异常,它将返回默认值,并记录日志。

注意:这个装饰器只能处理函数抛出的异常,不能处理语法错误和其他编译时错误。

Python 函数异常处理:装饰器实现错误捕获与默认值返回

原文地址: https://www.cveoy.top/t/topic/mC1a 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录