diff --git a/src/Debug/Debug.py b/src/Debug/Debug.py index 90d450d0..0a70354d 100644 --- a/src/Debug/Debug.py +++ b/src/Debug/Debug.py @@ -26,14 +26,18 @@ def formatException(err=None, format="text"): import traceback if type(err) == Notify: return err - elif type(err) == tuple and err[0] is not None: # Passed trackeback info + elif type(err) == tuple and err and err[0] is not None: # Passed trackeback info exc_type, exc_obj, exc_tb = err err = None else: # No trackeback info passed, get latest exc_type, exc_obj, exc_tb = sys.exc_info() if not err: - err = exc_obj.message + if hasattr(err, "message"): + err = exc_obj.message + else: + err = exc_obj + tb = [] for frame in traceback.extract_tb(exc_tb): path, line, function, text = frame diff --git a/src/Debug/DebugHook.py b/src/Debug/DebugHook.py index 5ae49121..f27cae64 100644 --- a/src/Debug/DebugHook.py +++ b/src/Debug/DebugHook.py @@ -50,7 +50,7 @@ def handleErrorNotify(*args, **kwargs): if err.__name__ == "KeyboardInterrupt": shutdown("Keyboard interrupt") elif err.__name__ != "Notify": - logging.error("Unhandled exception: %s" % [args]) + logging.error("Unhandled exception 3: %s" % Debug.formatException()) sys.__excepthook__(*args, **kwargs)