bmp = wx.Image("C:\User\Desktop\cool.bmp", wx.BITMAP_TYPE_ANY).ConvertToBitmap()
如果我运行它,它将自动显示一条错误消息,指出它无法加载图像。如何阻止我的程序执行此操作?
答案 0 :(得分:2)
如果您要完成的任务是停止引发异常,则可以将其包含在try / except块中:
try:
bmp = wx.Image("C:\User\Desktop\cool.py", wx.BITMAP_TYPE_ANY).ConvertToBitmap()
except:
pass
请记住,最好只忽略特定的异常,并在发生时做某事(即告诉用户选择另一个图像):
try:
bmp = wx.Image("C:\User\Desktop\cool.py", wx.BITMAP_TYPE_ANY).ConvertToBitmap()
except <Specific Exception>, e:
doSomething() # Handle exception
由于它是一个实际的弹出消息,您可以使用wx.Log_EnableLogging(False)
来禁用应用程序中的错误记录
要停止stderr重定向,您可以设置wx.App(redirect=False)
或者要将错误记录到文件而不是屏幕上,您可以使用:
wx.App(redirect=True,filename='error_log')
答案 1 :(得分:0)
如果我传递一个无效的图像,我甚至无法运行我的wxPython代码。这可能与wxPython是一个围绕C ++库的轻量级包装的事实有关。有关有趣的解释,请参阅http://wiki.wxpython.org/C%2B%2B%20%26%20Python%20Sandwich。
解决这类问题的最佳方法是实际使用Python的os模块,如下所示:
if os.path.exists(path):
# then create the widget
我为配置文件和其他东西做这类事情。如果文件不存在,我要么自己创建,要么不创建小部件,或者我显示消息,所以我知道要修复它。
答案 2 :(得分:0)
对于4x或更高版本的wxpython,我能够通过调用来禁用弹出消息
wx.Log.EnableLogging(False)
或致电
wx.Log.SetLogLevel(wx.LOG_Error)
相关文档here