2
私はnodejs C++モジュールを持っています。初期化エラーを報告する方法を理解したいと思います。したがって、このための定型は次のとおりです。nodejsモジュール初期化関数からのエラーの報告
extern "C" void Initialize(v8::Handle<v8::Object> instance)
{
// Do initialization stuff
}
NODE_MODULE(SomeModuleType, Initialize)
それは戻り値の型を持っていないし、私はそれがextern "C"
あるので、投げることは許されないのです場合、私はInitialize
内部エラーを報告するにはどうすればよいですか?私が呼び出すべき特定のコールバックがありますか?
また、nodejsに公開されているコールバックメソッドからエラーをレポートするベストプラクティスは何ですか?ヌルオブジェクトを一般的なプラクティスに戻しているのですか、そこに投げて、JavaScriptの面で例外として表示されますか?
'extern" C "'は、C++固有のコードや 'throw'のようなステートメントを使うことができないということを意味するものではなく、[* name mangling *](https://en.wikipedia) .org/wiki/Name_mangling)。 –
さて、私は部分的にしか同意しませんでした。呼び出し元がCコードの場合、UBになります。 –
nodejsモジュールがCアプリケーションによってロードされることは疑いの余地がありますが、その可能性は薄いです。まず、非C++アプリケーションは関数に正しい引数を渡すことができません。 –