有没有办法以编程方式找出为什么 Python 程序已关闭?
我正在使用python制作游戏,并且我一直在使用内置的 open()函数在.txt文件中创建日志。我遇到的一个主要问题是,当它偶尔崩溃时,日志并没有意识到它已经崩溃了。 我已设法记录用户是否通过按退出按钮关闭游戏,但我想知道是否有办法检查如何程序关闭。例如,如果用户按下退出键,如果它崩溃或强行关闭(例如通过任务管理器)
答案 0 :(得分:5)
您可以提供自己的异常处理程序:
import sys, logging
def excepthook_logger(extype, value, traceback):
logging.exception("Oh no! An uncaught exception happened!")
# Uncomment to also show the exceptions
#sys.__excepthook__(extype, value, traceback)
sys.excepthook = excepthook_logger
然后,每个未捕获的异常都会记录在您的日志文件中。
答案 1 :(得分:2)
一些提示:
答案 2 :(得分:0)
您还可以设置defaut安装的Python调试器 例如,在命令行中,您可以检查您的程序
>>>导入pdb
>>>导入youprogram.py
然后输入
进行测试>>> yourprogramm.test()
追踪(最近一次呼叫最后一次):
文件“”,第1行,在?
文件“./mymodule.py”,第4行,在测试中
TEST2()
文件“./mymodule.py”,第3行,在test2中
打印垃圾邮件
要仔细观察,您应该考虑使用
设置调试跟踪以在关键点停止执行pdb.set_trace()
停止执行评论当前操作
有关详细信息,建议您查看文档页面 http://docs.python.org/2/library/pdb.html