[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    koffice/kspread/plugins/scripting/scripts
From:       Sebastian Sauer <mail () dipe ! org>
Date:       2007-11-04 21:18:19
Message-ID: 1194211099.737210.811.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 732829 by sebsauer:

catch+display also exceptions

 M  +6 -3      consoledocker.py  


--- trunk/koffice/kspread/plugins/scripting/scripts/consoledocker.py #732828:732829
@@ -9,7 +9,6 @@
 Dual-licensed under LGPL v2+higher and the BSD license.
 """
 
-import os, sys, types
 import Kross, KoDocker, KSpread
 import PyQt4.Qt as Qt
 import sip #wrapinstance, unwrapinstance
@@ -61,6 +60,7 @@
             def row(self):
                 return 0
             def hasChildren(self):
+                import types
                 if not self.parent:
                     return True
                 if isinstance(self.object, types.ClassType) or \
isinstance(self.object, types.ModuleType): @@ -206,6 +206,7 @@
                 self.treeExpired = False
         
     def execute(self, code):
+        import sys, traceback
         _stdout = sys.stdout
         _stderr = sys.stderr
         try:
@@ -226,9 +227,11 @@
                     Base.write(self, "<b>%s</b>" % \
text.strip().replace("\n","<br>"))  sys.stdout = StdOut(self.browser)
             sys.stderr = StdErr(self.browser)
-            
             sys.stdout.write("&gt; <i>%s</i>" % code.strip())
-            exec code in globals(), globals()
+            try:
+                exec code in globals(), globals()
+            except:
+                sys.stderr.write("".join( \
traceback.format_exception(sys.exc_info()[0],sys.exc_info()[1],sys.exc_info()[2]) ))  \
finally:  sys.stdout = _stdout
             sys.stderr = _stderr


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic