chiark / gitweb /
Better handle plugin exceptions.
authordaid303 <daid303@gmail.com>
Thu, 1 Nov 2012 08:07:03 +0000 (09:07 +0100)
committerdaid303 <daid303@gmail.com>
Thu, 1 Nov 2012 08:07:03 +0000 (09:07 +0100)
Cura/gui/sliceProgessPanel.py
Cura/util/profile.py

index 98cd249626dca484491c3b79b1b0fb47e8ecde69..b575a171092b796d5d3b6a4948e0859cb0caad99 100644 (file)
@@ -168,7 +168,9 @@ class WorkerThread(threading.Thread):
                                if logLine.startswith('Model error('):
                                        gcodefile.write(';%s\n' % (logLine))
                        gcodefile.close()
-                       profile.runPostProcessingPlugins(gcodeFilename)
+                       ret = profile.runPostProcessingPlugins(gcodeFilename)
+                       if ret != None:
+                               self.progressLog.append(ret)
                        self.gcode = gcodeInterpreter.gcode()
                        self.gcode.load(gcodeFilename)
                        profile.replaceGCodeTags(gcodeFilename, self.gcode)
index 0458622d85eeb7c89ee6d40822063d189251e77c..b59cd8e5d4b1db84aaf2d5570a02643fac7e9f3b 100644 (file)
@@ -612,7 +612,12 @@ def runPostProcessingPlugins(gcodefilename):
                                try:\r
                                        value = float(value)\r
                                except:\r
-                                       value = 0.0\r
+                                       value = float(param['default'])\r
                        \r
                        locals[param['name']] = value\r
-               execfile(pythonFile, locals)\r
+               try:\r
+                       execfile(pythonFile, locals)\r
+               except:\r
+                       locationInfo = traceback.extract_tb(sys.exc_info()[2])[-1]\r
+                       return "%s: '%s' @ %s:%s:%d" % (str(sys.exc_info()[0].__name__), str(sys.exc_info()[1]), os.path.basename(locationInfo[0]), locationInfo[2], locationInfo[1])\r
+       return None\r