419 # trace_dispatch unconditionally. |
419 # trace_dispatch unconditionally. |
420 sys.settrace(lambda frame, event, arg: self.trace_dispatch) |
420 sys.settrace(lambda frame, event, arg: self.trace_dispatch) |
421 frame.f_trace = self.trace_dispatch |
421 frame.f_trace = self.trace_dispatch |
422 |
422 |
423 target(*args, **kwargs) |
423 target(*args, **kwargs) |
424 except SystemExit: |
|
425 pass |
|
426 except Exception: |
424 except Exception: |
427 excinfo = sys.exc_info() |
425 excinfo = sys.exc_info() |
428 self.user_exception(excinfo, True) |
426 self.user_exception(excinfo, True) |
429 finally: |
427 finally: |
430 sys.settrace(None) |
428 sys.settrace(None) |