History

Complete Console Exception.

NeetBhagat committed 9 years ago

Commit e8fc7661 parent 71bff046 files · +109 −13Browse files

Showing the changes to libraries/script-engine/src/ConsoleScriptingInterface.cpp (1 of 6 files). Show all

Unified · Split

libraries/script-engine/src/ConsoleScriptingInterface.cpp+40−4
@@ -52,10 +52,46 @@ void ConsoleScriptingInterface::error(QString message) { · 51 unmodified lines
52 52
53void ConsoleScriptingInterface::exception(QString message) {53void ConsoleScriptingInterface::exception(QString message) {
54 if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) {54 if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) {
55 scriptEngine->scriptErrorMessage(message);55 scriptEngine->logConsoleException(message);
56 }56 }
57
58}
59
60bool ConsoleScriptingInterface:: hasCorrectSyntax(QScriptProgram& program) {
61 const auto syntaxCheck = QScriptEngine::checkSyntax(program.sourceCode());
62 if (syntaxCheck.state() != QScriptSyntaxCheckResult::Valid) {
63 const auto error = syntaxCheck.errorMessage();
64 const auto line = QString::number(syntaxCheck.errorLineNumber());
65 const auto column = QString::number(syntaxCheck.errorColumnNumber());
66 const auto message = QString("[SyntaxError] %1 in %2:%3(%4)").arg(error, program.fileName(), line, column);
67 qCritical() << qPrintable(message);
68 return false;
69 }
70 return true;
71}
72
73QString ConsoleScriptingInterface::hadUncaughtExceptions(QScriptEngine& engine, QString& fileName) {
74 log("4");
75 //if (engine.hasUncaughtException()) {
76 const auto backtrace = engine.uncaughtExceptionBacktrace();
77 const auto exception = engine.uncaughtException().toString();
78 const auto line = QString::number(engine.uncaughtExceptionLineNumber());
79 engine.clearExceptions();
80 log("5");
81 static const QString SCRIPT_EXCEPTION_FORMAT = "[UncaughtException] %1 in %2:%3";
82 auto message = QString(SCRIPT_EXCEPTION_FORMAT).arg(exception, fileName, line);
83 if (!backtrace.empty()) {
84 static const auto lineSeparator = "\n ";
85 message += QString("\n[Backtrace]%1%2").arg(lineSeparator, backtrace.join(lineSeparator));
86 }
87 // qCritical() << qPrintable(message);
88 log("6");
89 return message;
90 //}
91 //return false;
57}92}
58 93
94
59void ConsoleScriptingInterface::time(QString labelName) {95void ConsoleScriptingInterface::time(QString labelName) {
60 QDateTime _currentTime = QDateTime::currentDateTime().toUTC();96 QDateTime _currentTime = QDateTime::currentDateTime().toUTC();
61 _listOfTimeValues.insert(labelName, _currentTime.toUTC());97 _listOfTimeValues.insert(labelName, _currentTime.toUTC());
@@ -126,9 +162,9 @@ void ConsoleScriptingInterface::asserts(bool condition, QString message) { · 64 unmodified lines
126 }162 }
127}163}
128 164
129void ConsoleScriptingInterface::trace(QString labelName) {165void ConsoleScriptingInterface::trace() {
130 if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) {166 if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) {
131 scriptEngine->scriptErrorMessage(labelName);167 scriptEngine->logTraceException();
132 }168 }
133}169}
134 170