Tôi đang lập trình một ứng dụng JavaScript truy cập một số mã C++ trên V8 của Google.Ném ngoại lệ JavaScript từ mã C++ bằng Google V8
Mọi thứ hoạt động tốt, nhưng tôi không thể tìm ra cách tôi có thể ném một ngoại lệ JavaScript có thể được nắm bắt trong mã JavaScript từ phương thức C++.
Ví dụ, nếu tôi có một hàm trong C++ như
...
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);
...
tiếp xúc với JavaScript, I'ld muốn sử dụng nó trong mã JavaScript như
try {
hello("throw me some exception!");
} catch (e) {
// catched it!
}
cách chính xác là gì thế nào để ném một ngoại lệ V8 ra khỏi mã C++?
Cảm ơn bạn! Tôi đã đọc API V8 trong 3 tuần qua và bằng cách nào đó đã quản lý được điều này. – Vortico
Tôi nhận được 'Segmentation fault' sau khi hàm C++ trả về JS – exebook