From e92ad862824240068238ca8cf29466b4d63175d0 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Tue, 17 Jun 2014 10:54:55 -0700 Subject: [PATCH] Clear script engine errors once they have been reported So that an error is not repeatedly reported to the console and log file. Also consistently report filename. And scripts included after one in error will now be run. --- libraries/script-engine/src/ScriptEngine.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index b0cce114a9..350473cc87 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -314,8 +314,9 @@ void ScriptEngine::evaluate() { if (_engine.hasUncaughtException()) { int line = _engine.uncaughtExceptionLineNumber(); - qDebug() << "Uncaught exception at line" << line << ":" << result.toString(); - emit errorMessage("Uncaught exception at line" + QString::number(line) + ":" + result.toString()); + qDebug() << "Uncaught exception at (" << _fileNameString << ") line" << line << ":" << result.toString(); + emit errorMessage("Uncaught exception at (" + _fileNameString + ") line" + QString::number(line) + ":" + result.toString()); + _engine.clearExceptions(); } } @@ -324,7 +325,7 @@ QScriptValue ScriptEngine::evaluate(const QString& program, const QString& fileN bool hasUncaughtException = _engine.hasUncaughtException(); if (hasUncaughtException) { int line = _engine.uncaughtExceptionLineNumber(); - qDebug() << "Uncaught exception at line" << line << ": " << result.toString(); + qDebug() << "Uncaught exception at (" << _fileNameString << ") line" << line << ": " << result.toString(); } emit evaluationFinished(result, hasUncaughtException); _engine.clearExceptions(); @@ -353,9 +354,9 @@ void ScriptEngine::run() { QScriptValue result = _engine.evaluate(_scriptContents); if (_engine.hasUncaughtException()) { int line = _engine.uncaughtExceptionLineNumber(); - - qDebug() << "Uncaught exception at line" << line << ":" << result.toString(); - emit errorMessage("Uncaught exception at line" + QString::number(line) + ":" + result.toString()); + qDebug() << "Uncaught exception at (" << _fileNameString << ") line" << line << ":" << result.toString(); + emit errorMessage("Uncaught exception at (" + _fileNameString + ") line" + QString::number(line) + ":" + result.toString()); + _engine.clearExceptions(); } QElapsedTimer startTime; @@ -495,8 +496,9 @@ void ScriptEngine::run() { if (_engine.hasUncaughtException()) { int line = _engine.uncaughtExceptionLineNumber(); - qDebug() << "Uncaught exception at line" << line << ":" << _engine.uncaughtException().toString(); - emit errorMessage("Uncaught exception at line" + QString::number(line) + ":" + _engine.uncaughtException().toString()); + qDebug() << "Uncaught exception at (" << _fileNameString << ") line" << line << ":" << _engine.uncaughtException().toString(); + emit errorMessage("Uncaught exception at (" + _fileNameString + ") line" + QString::number(line) + ":" + _engine.uncaughtException().toString()); + _engine.clearExceptions(); } } emit scriptEnding(); @@ -656,5 +658,6 @@ void ScriptEngine::include(const QString& includeFile) { int line = _engine.uncaughtExceptionLineNumber(); qDebug() << "Uncaught exception at (" << includeFile << ") line" << line << ":" << result.toString(); emit errorMessage("Uncaught exception at (" + includeFile + ") line" + QString::number(line) + ":" + result.toString()); + _engine.clearExceptions(); } }