2016-11-11 8 views
-2

私のライブラリにカスタム例外クラスがあります。私はSEHハンドラを登録して、アクセス違反、違法命令、ゼロで割るなどのCPU例外をキャッチする必要があるかどうかを知りたいと思います。私はその後、CPU例外が発生したことをライブラリのクライアントに報告することができます。SEHハンドラを登録し、私のライブラリのCPU例外をキャッチする必要がありますか?

+0

これはC++のWindowsの質問です。 – Gonmator

答えて

1

本当に必要な特定のシステム関連ライブラリを作成していない場合は、SEHハンドラを登録しないでください。これを行うと、アプリケーションにエラーが表示されなくなります。

最初のルールはSEH例外を処理してはならず、アプリケーションが設定されたとおりに処理するようにする必要があります。

しかし、ライブラリを呼び出すときに例外が発生する(たとえば、例外を発生させる可能性のある外部APIを呼び出したために)プログラムがクラッシュする可能性がある場合は、 (エラーを報告するような)何らかのアクションをとることができます。ただし、その場合は、例外保護の範囲とフィルターをできるだけ狭くしてください。

システム例外があなた自身のコードによって引き起こされている場合は、それを隠すべきではなく、間もなく修正する必要があります。

関連する問題