概述
一:捕获所有的异常
二:采用traceback模块查看异常,需要导入traceback模块,这个方法会打印出异常代码的行号
三:调用atexit
import atexit
import signal
import traceback
import logging
logger = logging.getLogger(__name__)
# 如果程序被Python未处理的信号终止,或者出现内部错误,或者调用了os._exit(),则不会执行atexit处理程序。
@atexit.register
def exit_handler():
logger.info("异常退出")
# 采用traceback模块查看异常,这个方法会打印出异常代码的行号
exc_type, exc_value, exc_tb = sys.exc_info()
logger.info(str(traceback.format_exception(exc_type, exc_value, exc_tb)))
def sig_handler(signum, frame):
logger.info('catched singal: %d' % signum)
sys.exit(0)
if __name__ == '__main__':
try:
signal.signal(signal.SIGTERM, sig_handler) # kill pid
signal.signal(signal.SIGINT, sig_handler) # ctrl -c
# 内部代码
except Exception as err:
# 输出异常类<class 'Exception'>
logger.info(str(err))
最后
以上就是魁梧电源为你收集整理的Python程序退出时执行指定代码的全部内容,希望文章能够帮你解决Python程序退出时执行指定代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复