【发布时间】:2019-11-04 09:33:30
【问题描述】:
在出现异常的情况下,我希望程序捕获它们,记录它们,然后继续下一次迭代。显然,仍然应该引发 KeyboardInterrupt 以便可以停止程序,但是我应该引发任何其他异常吗?
下面是非常粗略的代码示例。这是一个装饰器,它捕获异常并记录它们。基本上,我应该还有其他except 案例吗?
def exception_logger(func):
@wraps(func)
def wrapper(*args, **kwargs):
# Run as normal
try:
return func(*args, **kwargs)
except KeyboardInterrupt:
raise
# Any other exception that occurs is logged
except:
log_file = 'example.txt'
logger = logger_format(log_file)
logger.exception(f'\nAn exception occurred with: {func.__qualname__}\n')
print(f'\n\nAn exception occurred with: {func.__qualname__}\nView the log file for details.\n'.upper())
return wrapper
谢谢。
【问题讨论】:
标签: python python-3.x exception logging