Javascript 如何创建类型为Error的QJSValue对象-从QJSEngine抛出错误

Javascript 如何创建类型为Error的QJSValue对象-从QJSEngine抛出错误,javascript,c++,qt,qt5,qjsengine,Javascript,C++,Qt,Qt5,Qjsengine,在Qt中,有人知道如何创建类型错误吗 上下文:我用来执行用户在用QT创建的GUI中编写的JavaScript代码。JavaScript代码调用C++函数。根据文档,只有当JavaScript代码中存在错误时,QJSEngine::evaluate()才会抛出脚本异常(类型为Error的QJSValue)。因此,如果C++函数中存在错误,我的方法是返回类型错误的QJS值。我遵循QJSnEng::评估不捕获C++异常。 这里是预期功能的代码片段: void CMainWindow::slot_Exe

在Qt中,有人知道如何创建类型错误吗

上下文:我用来执行用户在用QT创建的GUI中编写的JavaScript代码。JavaScript代码调用C++函数。根据文档,只有当JavaScript代码中存在错误时,QJSEngine::evaluate()才会抛出脚本异常(类型为Error的QJSValue)。因此,如果C++函数中存在错误,我的方法是返回类型错误的QJS值。我遵循QJSnEng::评估不捕获C++异常。 这里是预期功能的代码片段:

void CMainWindow::slot_ExecuteJVScript()
{
   myCppClass myObject(parameters); //It has a foo() method.
   QJSEngine myEngine;
   myEngine.globalObject().setProperty("myObj", myEngine.newQObject(&myObject)); //Now we can access the C++ object from JavaScript code.
   QString myScriptJS = "var X = myObj.foo()";  //Calling a C++ function from JavaScript
   QJSValue myValue = myEngine.evaluate(myScriptJS);
   if(myValue.isError())
   {
      //If there is an error in the JavaScript code we enter here
      //But I also wanto to enter here if there is an error in my foo() C++ function. 
   }
   else
   {
      //Do things with myValue
   }
}
myCppClass::foo()的小示例


非常感谢。

我只想说,继续吧,提交一份bug报告……我已经看到主要问题已提交:。这是因为QJS引擎缺少一种方法来捕捉C++函数所引发的错误。非常感谢。
QJSValue myCppClass::foo()
{       
   if(something)
   {
       //Create a QJSValue myValue with some data
       return myValue;
   }
   else
   {   //ERROR
       //Create a QJSValue of type Error
       return myValueOfTypeError;
   }
}