【问题标题】:create exception when python command generates a program.exe has stopped working type errorpython命令生成程序时创建异常.exe已停止工作类型错误
【发布时间】:2020-04-22 08:07:57
【问题描述】:

我在 Windows 10 下使用 Python 3.6 开发的程序遇到问题。

一个特定的命令会产生一个未知的错误,windows 会抛出一个“program.exe 已停止工作”消息并且程序退出。

该命令是一个 3d 模型加载器,它是另一个 python 包 (Panda3D) 的一部分。崩溃总是与此命令相关联(更具体地说,与加载程序的特定 dll 相关)以及它试图打开的特定文件。

由于我无法定位并因此解决 dll 中的错误(可能存在错误),我只想传递有问题的文件并继续下一个。但是由于python退出并且我不知道错误类型,典型的try,except不起作用。

所以,我想知道是否有办法在我的代码中预测这种行为并防止程序退出。

非常感谢您的帮助。

【问题讨论】:

    标签: python-3.x error-handling


    【解决方案1】:

    弹出“Program.exe 已停止工作”。可能由多种原因引起,因此没有“一刀切”的解决方案。但是,如果您确定您的问题是由特定的代码行引起的,您可以随时尝试以下代码:

    try:
        loader.loadModel("c/path/to/your/file")
    except Exception as e:
        print(e.message, e.args)
        # your error-handling code here
    

    确保您提供给 loadModel 的文件路径符合以下规定:

    # WRONG:
    loader.loadModel("c:\\Program Files\\My Game\\Models\\Model1.egg")
    
    # RIGHT:
    loader.loadModel("/c/Program Files/My Game/Models/Model1.egg")
    

    来源:pandas3d official documentation

    【讨论】:

    • 不。在这种情况下,“尝试除外”将不起作用。 loader 命令可能会造成内存泄漏并使 python 本身崩溃,然后再转到 except。路径也是正确的,因为加载器可以很好地处理所有其他文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 2015-02-24
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    相关资源
    最近更新 更多