2011-10-04 56 views
1

我有一個用Python開發的程序(2.7 & 3.2),它讀取三個文件並根據這些文件生成一些代碼。在代碼中,我有幾個輸入文件檢查來捕獲用戶輸入錯誤。如果程序捕獲輸入錯誤,我使用os.sys.exit()命令停止處理併發出錯誤消息。我主要使用IDLE的過程,這工作得很好。如何停止由於輸入錯誤而導致的代碼運行而不會導致GUI崩潰

現在我已經爲使用PYQT4進行部署的程序開發了一個GUI。用戶使用GUI輸入所有必需的輸入文件和條件,然後GUI調用我用必要參數生成的較早代碼。

但是,我發現如果用戶在輸入文件中發生錯誤,當早期代碼捕獲這些錯誤並執行os.sys.exit()時,GUI本身完全關閉;這不好。

我在輸入文件中引入了與GUI相同的檢查,所以如果這些檢查被捕獲,它們將在GUI中處理,而不是由代碼處理。但是在代碼內部發生某些處理檢查,GUI無法訪問它們。

問題:有沒有辦法讓被調用的代碼停止運行,在不導致GUI完全退出的情況下打印錯誤消息(例如,我已經使用的日誌文件)?

感謝,

注:該代碼是在這一點上太大,我把它集成到GUI爲一類。

回答

3

我假設您不能或不願意更改您的CLI程序,而是希望在GUI中捕獲由sys.exit引發的異常。這是如何:

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