【问题标题】:how do I prevent python exe from closing when an error occurs发生错误时如何防止python exe关闭
【发布时间】:2021-11-22 09:59:35
【问题描述】:
try:
    some code here
except Exception as e:
    print("error: ",e)

如果这个 python exe 代码产生异常,它会立即关闭 exe 终端 如何阻止它退出 exe 终端,以便我可以了解究竟发生了什么异常 我也不能在 CMD 中运行它我只需要运行 exe 文件 我也不能使用按任意键的方法

【问题讨论】:

  • 这能回答你的问题吗? Can Syntax Errors be handled?
  • 您好,感谢您的回复,但这只是一个示例,但是在我的代码中,语法错误不会成为问题
  • 我想到了相同的解决方案,我将错误写入 excel 工作表或 csv 文件可能只是想知道是否有任何其他选项可以在屏幕上显示错误在我缺席的情况下执行期间是否有任何错误,因为我将整天运行此操作

标签: python cmd terminal exe


【解决方案1】:

程序终止时终端关闭。当您捕获异常时,您会打印错误消息,然后程序终止,因此您不会从捕获异常中获得太多收益;事实上,你得到的甚至更少(你不打印堆栈跟踪)。

要获取堆栈跟踪,请查看traceback

try:
    foo = 123 / 0
except Exception as e:
    traceback.print_exception(e)

然后您需要让程序稍等片刻,您才能真正看到您打印的堆栈跟踪和错误。一个简单的方法是等待输入:

try:
    foo = 123 / 0
except Exception as e:
    traceback.print_exception(e)
    wait_for_it = input('Press enter to close the terminal window')

或者您可以添加一个断点以使Python debugger pdb 出现。 (当我在终端中运行此代码时,它至少在 Mac OS 上运行,不了解 Windows。)请参阅上面的链接以获取有关它的帮助,或在其提示符处键入 help

try:
    foo = 123 / 0
except Exception as e:
    breakpoint()

说到终端:如果你只是打开一个命令提示符或bash终端,你可以用python3 myprog.py运行你的代码,并且那个终端不会自动关闭,这样你就可以在不修改程序的情况下看到输出。根据您运行代码的方式以及您拥有的模块依赖项,这可能需要更多设置(例如 virtual environment),但从长远来看可能是值得的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-30
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多