如何因输入错误而停止代码运行,而不会导致GUI崩溃



我用Python (2.7 &3.2)读取三个文件,并根据这些文件生成一些代码。在代码中,我进行了几个输入文件检查,以捕获用户的任何输入错误。如果程序捕捉到输入错误,我使用os.sys.exit()命令停止处理并发出错误消息。我主要是使用IDLE的过程,这工作得很好。

现在我已经为该程序开发了一个GUI,以便使用PYQT4进行部署。用户使用GUI输入所有必要的输入文件和条件,然后GUI调用我用必要的参数生成的早期代码。

然而,我发现如果用户在输入文件中犯了错误,当早期的代码捕获这些错误并执行os.sys.exit()时,GUI本身完全关闭;这并不好。

我对GUI中的输入文件引入了相同的检查,因此,如果这些检查被捕获,它们将在GUI中处理,而不是由代码处理。但是在代码中发生的某些处理检查是GUI无法访问的。

问题:是否有一种方法可以使被调用的代码停止运行,打印错误消息(例如到日志文件;(我已经在使用),而不会导致GUI完全退出?

谢谢,

注意:此时代码太大,我无法将其作为一个类集成到GUI中。

我认为您不能或不愿意更改您的CLI程序,而是希望在GUI中捕获sys.exit引发的异常。方法如下:

import os
try:
   os.sys.exit()
except SystemExit as err:
   print('Caught ya')

你试过在python中处理异常吗?

try:
   #some code here
except Exception:
   print 'Something bad happened'

最好尝试捕捉特定的异常。内置异常列表http://docs.python.org/library/exceptions.html#bltin-exceptions

最新更新