wxPython不应该抛出异常,而是提供原始错误消息

时间:2009-01-19 19:56:10

标签: python exception wxpython

我正在为我在python中编写的应用程序编写菜单,使用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库中的一个错误,因为我很确定它应该抛出异常,即使它不是最好的方法吗?

P.S。 Google搜索可以做的最好的事情是建议我使用wxPython附带的img2py模块将所有图像转换为python代码,但我更愿意将图像保留为图像格式以用于我正在做的事情。

1 个答案:

答案 0 :(得分:3)

这是一个已知问题。 Robin Dunn回答了几次:只需创建您的日志记录方法,例如:

dummy_log=wx.LogNull()

当变量dummy_log超出范围时,将再次启用正常记录。