第十四章:应用构建模块-atexit:程序关闭回调-处理异常

14.10.5 处理异常
对于atexit回调中产生的异常,会在控制台上打印这些异常的Traceback,最后产生的异常会被重新抛出,并作为程序的最后一个错误消息。

import atexit

def exit_with_exception(message):
    raise RuntimeError(message)

atexit.register(exit_with_exception,'Registered first')
atexit.register(exit_with_exception,'Registered second')

注册顺序会控制执行顺序。如果一个回调中的某个错误引入了另一个回调中的一个错误 (较早注册,但较后调用),那么向用户显示时,最后的错误消息可能并不是最有用的错误消息。
在这里插入图片描述

通常最好的办法是在清理函数中处理异常并悄悄地记入日志,因为程序退出时显示一大堆错误会很乱。

猜你喜欢

转载自blog.csdn.net/weixin_43193719/article/details/94651503
今日推荐