使用sys.excepthook函数进行全局异常的获取。
首先定义异常处理函数, 并使用该函数接收系统异常信息。
import wx
import sys
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'test')
btn = wx.Button(self, -1, 'test')
btn.Bind(wx.EVT_BUTTON, self.OnEvt)
def OnEvt(self, event):
raise Exception('error')
if __name__ == '__main__':
def excepthook(type, value, trace):
'''write the unhandle exception to log'''
print 'Unhandled Error: %s: %s'%(str(type), str(value))
sys.__excepthook__(type, value, trace)
sys.excepthook = excepthook
app = wx.PySimpleApp()
frame = TestFrame()
app.SetTopWindow(frame)
frame.Show(True)
app.MainLoop()