diff --git a/src/commands.py b/src/commands.py index fb905ee69..49d682437 100644 --- a/src/commands.py +++ b/src/commands.py @@ -73,8 +73,11 @@ def process(f, *args, **kwargs): q = multiprocessing.Queue() def newf(f, q, *args, **kwargs): - r = f(*args, **kwargs) - q.put(r) + try: + r = f(*args, **kwargs) + q.put(r) + except Exception as e: + q.put(e) targetArgs = (f, q,) + args p = callbacks.CommandProcess(target=newf, args=targetArgs, kwargs=kwargs) @@ -87,6 +90,8 @@ def process(f, *args, **kwargs): v = q.get(block=False) except Queue.Empty: v = "Nothing returned." + if isinstance(v, Exception): + v = "Error: " + str(v) return v class UrlSnarfThread(world.SupyThread):