我有一个用 Python(2.7 和 3.2)开发的程序,它读取三个文件并根据这些文件生成一些代码。在代码中,我进行了多次输入文件检查以捕获用户的任何输入错误。如果程序捕获输入错误,我使用 os.sys.exit() 命令停止处理并发出错误消息。我主要使用 IDLE 进行该过程,效果很好。
现在我已经为使用 PYQT4 进行部署的程序开发了一个 GUI。用户使用 GUI 输入所有必要的输入文件和条件,然后 GUI 调用我使用必要的参数生成的早期代码。
但是,我发现如果用户在输入文件中出错,当早期的代码捕获这些错误并执行 os.sys.exit() 时,GUI 本身将完全关闭;这不好。
我在 GUI 中引入了对输入文件的相同检查,因此如果这些文件被捕获,它们将在 GUI 中处理,而不是由代码处理。但是,代码内部发生了某些处理检查,GUI 无法访问它们。
问题:有没有办法让被调用的代码停止运行,打印错误消息(例如到日志文件;我已经使用过),而不导致 GUI 完全退出?
谢谢
注意:此时代码太大,我无法将其作为类集成到 GUI 中。
最佳答案
我假设您不能或不愿意更改 CLI 程序,而是希望捕获由 sys.exit
引发的异常,而不是在 GUI 中。方法如下:
import os
try:
os.sys.exit()
except SystemExit as err:
print('Caught ya')
关于python - 如何停止由于输入错误而运行的代码而不导致 GUI 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7652816/