gpt4 book ai didi

c++ - 从 nodejs 模块初始化函数报告失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:14:00 25 4
gpt4 key购买 nike

我有一个nodejs C++模块,想了解如何报初始化错误。所以这个样板是:

extern "C" void Initialize(v8::Handle<v8::Object> instance)
{
// Do initialization stuff
}

NODE_MODULE(SomeModuleType, Initialize)

如果 Initialize 没有返回类型并且我不允许抛出,因为它是 extern "C",我如何在 Initialize 中报告错误?有没有我应该调用的特定回调?

此外,从暴露给 nodejs 的回调方法中报告错误的最佳做法是什么?返回 null 对象是常见的做法还是我可以将其抛出并在 javascript 端显示为异常?

最佳答案

在潜伏在 nodejs 资源周围之后,我归结为这个,但是仍然欢迎评论,关于这是否是一个好方法:

extern "C" void Initialize(v8::Handle<v8::Object> instance)
{
try
{
// Do something unsafe
}
catch (std::exception& Exception)
{
node::Environment::GetCurrent(v8::Isolate::GetCurrent())->ThrowError("module initialization failed");
}
}

如果我只是重新抛出异常,那么在调试器下继续执行,这不是我想要的。

关于c++ - 从 nodejs 模块初始化函数报告失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36384267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com