我有一个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/