Estoy programando una aplicación JavaScript que accede a algún código C++ sobre el V8 de Google.Lanzar una excepción JavaScript desde el código C++ usando Google V8
Todo funciona bien, pero no pude entender cómo puedo lanzar una excepción de JavaScript que se puede atrapar en el código JavaScript del método C++.
Por ejemplo, si tengo una función en C++ como
...
using namespace std;
using namespace v8;
...
static Handle<Value> jsHello(const Arguments& args) {
String::Utf8Value input(args[0]);
if (input == "Hello") {
string result = "world";
return String::New(result.c_str());
} else {
// throw exception
}
}
...
global->Set(String::New("hello"), FunctionTemplate::New(jsHello));
Persistent<Context> context = Context::New(NULL, global);
...
expuesto a JavaScript, I'ld gustaría usarlo en el código JavaScript como
try {
hello("throw me some exception!");
} catch (e) {
// catched it!
}
Cuál es la forma correcta lanzar una excepción V8 fuera del código C++?
Gracias! He estado leyendo la API V8 durante las últimas 3 semanas y de alguna manera me las arreglé para perder esto. – Vortico
Me sale 'Error de segmentación' después de que mi función C++ vuelve a JS – exebook