Je suis en train de programmer une application JavaScript qui accède à du code C++ sur le V8 de Google.Jeter une exception JavaScript à partir du code C++ en utilisant Google V8
Tout fonctionne bien, mais je ne pouvais pas comprendre comment je peux lancer une exception JavaScript qui peut être interceptée dans le code JavaScript de la méthode C++.
Par exemple, si j'ai une fonction en C++ comme
...
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);
...
exposé à JavaScript, I'ld souhaitez utiliser dans le code JavaScript comme
try {
hello("throw me some exception!");
} catch (e) {
// catched it!
}
Quelle est la bonne façon jeter une exception V8 hors du code C++?
Merci! J'ai lu l'API V8 depuis 3 semaines et j'ai raté ça. – Vortico
Je reçois 'Segmentation fault' après que ma fonction C++ retourne à JS – exebook