コンストラクターで例外をスローする静的メンバーを含むライブラリのdlopen-結果として中止

StackOverflow https://stackoverflow.com/questions/413473

質問

dlopen関数を使用して動的ライブラリをロードしようとしています。このライブラリには、コンストラクターで例外をスローする静的オブジェクトが含まれています。 " try-catch(...)"がありますdlopen呼び出しをブロックしますが、例外はキャッチされず、「中止」が表示されます。

この例外をどのようにキャッチできますか?

役に立ちましたか?

解決

簡単な回答:できません

もう一度考えます。
元のステートメントは保持されますが、dlopen()はCライブラリ関数であることも覚えておく必要があります。 Cは例外をサポートしていません。したがって、C ++コードからC(dlopen()に戻るグローバルオブジェクト)コードに交差する例外をスローすると、アプリケーションが終了します。

こちらをご覧ください:例外時にデストラクタが呼び出されない理由

これらは、例外をスローするとアプリケーションが終了する状況です。あなたの特定の状況は以下によってカバーされます:

例外は、非ローカルスタティック(グローバル)のコンストラクタ/デストラクタをエスケープします

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top