Better handle plugin exceptions.

master
daid303 2012-11-01 09:07:03 +01:00
parent 08193a4580
commit 6904a893b7
2 changed files with 10 additions and 3 deletions

View 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)

View File

@ -612,7 +612,12 @@ def runPostProcessingPlugins(gcodefilename):
try:
value = float(value)
except:
value = 0.0
value = float(param['default'])
locals[param['name']] = value
execfile(pythonFile, locals)
try:
execfile(pythonFile, locals)
except:
locationInfo = traceback.extract_tb(sys.exc_info()[2])[-1]
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])
return None