私は困惑しています。 AccessViolationException
は、第三者のライブラリによってランダムに生成されます。それは安全に無視することができますので、[HandleProcessCorruptedStateExceptions]
属性の呼び出しメソッドをhereとしてラップしています。HandleProcessCorruptedStateExceptionsにもかかわらずAccessViolationExceptionがキャッチされない
私は、.NET Frameworkの4.6.2およびVisual Studio 2015を使用しています更新3.私は何を見逃しているだろうか?
[HandleProcessCorruptedStateExceptions]は、渡されるオブジェクトが何であっても動作しませんか?どのように重要ですか? –
Erm、待って、それは働いた。例外は、CSEが通常行うようにプログラムを終了しませんでした。あなたはその属性で例外を処理すると約束しましたが、そうしなかったのです。属性を悪用しないように注意してください。そのサードパーティのライブラリを再度呼び出すことはできません。そのためには、まともなエラーレポート(AppDomain.UnhandledExceptionイベントを登録)でプログラムを終了するか、そのライブラリへのそれ以上の呼び出しを抑制する静的ブール変数を設定する必要があります。デバッガは、イベントが発生する前に必ずステップインすることに注意してください。 –
@HansPassantあなたは間違いなし! (実際には、ほとんどの場合、これは誇張されていません。私の意見では、ここで一番賢い人の1人です。) 'AccessViolationException'の後、プロセスを終了する以外は何も本当に安全です。私は、この例外を無視するのが安全であるとOPが述べたので、あなたの予防措置の警告は言及していませんでした。 (私は彼が既に例外の理由を分析していたと仮定した。) – haindl