我正在为我在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代码,但我更愿意将图像保留为图像格式以用于我正在做的事情。
答案 0 :(得分:3)