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

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

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

如果没有返回types,我如何报告Initialize的错误,我不能抛出,因为它是extern "C" ? 有什么特定的回拨,我应该打电话?

另外,从暴露给nodejs的callback方法报告错误的最佳做法是什么? 是否返回null对象的常见做法,或者我可以扔在那里,将显示为JavaScript方面的exception?

在潜伏在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"); } } 

如果我只是重新抛出exception,然后在debugging器下执行,这是不是我想要的。