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.
Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 1 file). Show all
Unified · Split
| @@ -314,8 +314,9 @@ void ScriptEngine::evaluate() { · 313 unmodified lines | ||
| 314 | 314 | |
| 315 | 315 | if (_engine.hasUncaughtException()) { |
| 316 | 316 | int line = _engine.uncaughtExceptionLineNumber(); |
| 317 | − qDebug() << "Uncaught exception at line" << line << ":" << result.toString(); | |
| 318 | − emit errorMessage("Uncaught exception at line" + QString::number(line) + ":" + result.toString()); | |
| 317 | + qDebug() << "Uncaught exception at (" << _fileNameString << ") line" << line << ":" << result.toString(); | |
| 318 | + emit errorMessage("Uncaught exception at (" + _fileNameString + ") line" + QString::number(line) + ":" + result.toString()); | |
| 319 | + _engine.clearExceptions(); | |
| 319 | 320 | } |
| 320 | 321 | } |
| 321 | 322 | |
| @@ -324,7 +325,7 @@ QScriptValue ScriptEngine::evaluate(const QString& program, const QString& fileN · 2 unmodified lines | ||
| 324 | 325 | bool hasUncaughtException = _engine.hasUncaughtException(); |
| 325 | 326 | if (hasUncaughtException) { |
| 326 | 327 | int line = _engine.uncaughtExceptionLineNumber(); |
| 327 | − qDebug() << "Uncaught exception at line" << line << ": " << result.toString(); | |
| 328 | + qDebug() << "Uncaught exception at (" << _fileNameString << ") line" << line << ": " << result.toString(); | |
| 328 | 329 | } |
| 329 | 330 | emit evaluationFinished(result, hasUncaughtException); |
| 330 | 331 | _engine.clearExceptions(); |
| @@ -353,9 +354,9 @@ void ScriptEngine::run() { · 22 unmodified lines | ||
| 353 | 354 | QScriptValue result = _engine.evaluate(_scriptContents); |
| 354 | 355 | if (_engine.hasUncaughtException()) { |
| 355 | 356 | int line = _engine.uncaughtExceptionLineNumber(); |
| 356 | − | |
| 357 | − qDebug() << "Uncaught exception at line" << line << ":" << result.toString(); | |
| 358 | − emit errorMessage("Uncaught exception at line" + QString::number(line) + ":" + result.toString()); | |
| 357 | + qDebug() << "Uncaught exception at (" << _fileNameString << ") line" << line << ":" << result.toString(); | |
| 358 | + emit errorMessage("Uncaught exception at (" + _fileNameString + ") line" + QString::number(line) + ":" + result.toString()); | |
| 359 | + _engine.clearExceptions(); | |
| 359 | 360 | } |
| 360 | 361 | |
| 361 | 362 | QElapsedTimer startTime; |
| @@ -495,8 +496,9 @@ void ScriptEngine::run() { · 133 unmodified lines | ||
| 495 | 496 | |
| 496 | 497 | if (_engine.hasUncaughtException()) { |
| 497 | 498 | int line = _engine.uncaughtExceptionLineNumber(); |
| 498 | − qDebug() << "Uncaught exception at line" << line << ":" << _engine.uncaughtException().toString(); | |
| 499 | − emit errorMessage("Uncaught exception at line" + QString::number(line) + ":" + _engine.uncaughtException().toString()); | |
| 499 | + qDebug() << "Uncaught exception at (" << _fileNameString << ") line" << line << ":" << _engine.uncaughtException().toString(); | |
| 500 | + emit errorMessage("Uncaught exception at (" + _fileNameString + ") line" + QString::number(line) + ":" + _engine.uncaughtException().toString()); | |
| 501 | + _engine.clearExceptions(); | |
| 500 | 502 | } |
| 501 | 503 | } |
| 502 | 504 | emit scriptEnding(); |
| @@ -656,5 +658,6 @@ void ScriptEngine::include(const QString& includeFile) { · 153 unmodified lines | ||
| 656 | 658 | int line = _engine.uncaughtExceptionLineNumber(); |
| 657 | 659 | qDebug() << "Uncaught exception at (" << includeFile << ") line" << line << ":" << result.toString(); |
| 658 | 660 | emit errorMessage("Uncaught exception at (" + includeFile + ") line" + QString::number(line) + ":" + result.toString()); |
| 661 | + _engine.clearExceptions(); | |
| 659 | 662 | } |
| 660 | 663 | } |