我正在使用Python 3
我一直在寻找答案,但我还没有找到答案。基本上,我在游戏引擎中运行了几个Python脚本,每个脚本都有自己的入口点。
我宁愿不在我的所有代码中添加try: except blocks
,所以我想知道是否可以告诉Python退出(或者可能会为此分配一个自定义函数) #34;回调")发现它的第一个错误,无论它在哪里或发现了什么?
目前,游戏引擎会在找到并遇到错误后继续运行,这使得诊断问题变得比必要更困难,因为遇到一个错误可能会使后续脚本无效(因为它依赖于错误脚本的变量)例如,设置)。有任何想法吗?
我知道我可以将控制台重定向到一个文件以便更容易滚动,但只是捕获第一个错误并过早地停止游戏将非常有用。
好的,还有一些额外的信息 - 抱歉忽略了这一点。我使用的引擎(Blender游戏引擎)用C编码,因此更改源代码的方式比我想做的要多。
在谷歌搜索之后,似乎有一个类似的问题和一个可靠的答案被问到here,这是如何获得最后一次提出的异常。如果我检查sys模块是否存在last_value变量并且它存在,那么我可以提前退出,因为控制台已经打印出错误。
感谢您的帮助。
答案 0 :(得分:0)
您可以使用atexit.register()注册程序终止时将调用的函数。终止后,您必须使用当前traceback object打印有关发生的异常的调试信息(如果有)。
注意:这假设由游戏代码捕获的例外AREN&#T;因为它依赖于例外来终止执行。