2009-01-19 51 views
3

我正在編寫我正在用python編寫的應用程序的菜單,使用用戶界面的wxPython庫,並且我試圖將圖標添加到一些菜單項。因爲我正在努力認真對待它,所以我試圖限制如果其中一個引用的圖像文件不存在而造成的損害,並且最簡單的方法(在我看來)是使用異常。wxPython不應該拋出異常,而應該提供原始錯誤消息

問題是,當我鏈接到一個不存在的文件時,不會拋出異常。相反,我得到一個可怕的消息框:

Can't load image from <path>: Image does not exist.

此消息是確切的事情,我試圖阻止類型,但即使有最廣泛的異常捕獲聲明沒有什麼作品。

這是一個削減版,採取什麼似乎是相關的,從我寫的:

NewProject = wx.MenuItem(File, -1, "&New Project\tCtrl+N", "Create a new project") 
try: 
    # raises an error message but not an exception 
    NewProject.SetBitmap(wx.Image(<path> ), wx.BITMAP_TYPE_PNG).ConvertToBitmap()) 
except Exception: 
    pass 

所以這是我的問題:什麼是我做錯了什麼?我是否正朝着錯誤的方向去處理這個問題,過分強調異常,當有其他方法時(儘管看起來不像我認爲的那麼簡單)?這是wxPython庫中的一個bug,因爲我很確定它應該拋出一個異常,即使它不是最好的方法呢?

p.s. Google搜索最棒的建議是使用wxPython附帶的img2py模塊將所有圖片轉換爲python代碼,但我更願意將圖片保存爲我正在做的圖片格式。

回答

3

這是一個已知問題。 Robin Dunn回答了幾次:您只需建立記錄方法如:

dummy_log=wx.LogNull() 

當變量dummy_log用完的範圍,正常的日誌記錄被再次啓用。

+1

好的,這是一個開始;它不再顯示錯誤消息。但我看不出有什麼能幫助我理解這個例外,即如果失敗了,就做一些其他的事情。 – dangerouslyfacetious 2009-01-20 21:12:27

相關問題