Improve exception handling across rpc interface
Modified Files:
rpc.py
diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py
index 5bb0e64..922a460 100644
--- a/Lib/idlelib/rpc.py
+++ b/Lib/idlelib/rpc.py
@@ -208,7 +208,7 @@
if how == "EXCEPTION":
mod, name, args, tb = what
self.traceback = tb
- if mod:
+ if mod: # not string exception
try:
__import__(mod)
module = sys.modules[mod]
@@ -220,7 +220,10 @@
except AttributeError:
pass
else:
+ # instantiate a built-in exception object and raise it
raise getattr(__import__(mod), name)(*args)
+ name = mod + "." + name
+ # do the best we can:
raise name, args
if how == "ERROR":
raise RuntimeError, what