有没有办法让python程序在崩溃时运行一个动作?
发布时间:2020-12-20 11:32:24 所属栏目:Python 来源:网络整理
导读:我有一个带有循环的 python脚本,每次经常崩溃并有各种异常,需要重新启动.有没有办法在发生这种情况时运行一个动作,以便我可以收到通知? 解决方法 您可以通过为 sys.excepthook handler分配自定义函数来安装异常挂钩.只要存在未处理的异常(因此退出解释器的
我有一个带有循环的
python脚本,每次经常崩溃并有各种异常,需要重新启动.有没有办法在发生这种情况时运行一个动作,以便我可以收到通知?
解决方法
您可以通过为
sys.excepthook handler分配自定义函数来安装异常挂钩.只要存在未处理的异常(因此退出解释器的异常),就会调用该函数.
import sys def myexcepthook(type,value,tb): import traceback from email.mime.text import MIMEText from subprocess import Popen,PIPE tbtext = ''.join(traceback.format_exception(type,tb)) msg = MIMEText("There was a problem with your program:nn" + tbtext) msg["From"] = "me@example.com" msg["To"] = "you@example.com" msg["Subject"] = "Program exited with a traceback." p = Popen(["/usr/sbin/sendmail","-t"],stdin=PIPE) p.communicate(msg.as_string()) sys.excepthook = myexcepthook 只要程序在您的系统上运行sendmail命令,此异常挂钩会在程序退出时通过电子邮件向您发送回溯. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |