.NET
ガベージ コレクションの処理中にファイナライザー メソッドで例外が発生した場合、内部で実際に何が起こるのか興味があります。ヒープとLOHでロジックが違う?誰でも詳細な説明を提供できますか?
1 に答える
4
特別なことは何もありません。CLR は例外を検出し、プログラムを終了します。
@kmatyaszek によってリンクされた記事は非常に古いことに注意してください。ファイナライザーとワーカー スレッドで例外を飲み込むことは、多くの悲惨な事態を引き起こした .NET 1.x の機能でした。これが発生したときに、プログラムが適切に動作しなくなる理由を診断するのは非常に困難です。.NET 2.0 はそれに終止符を打ち、デフォルトのポリシーは常にプログラムを終了することです。技術的には、カスタム CLR ホストと<legacyUnhandledExceptionPolicy>
app.exe.config ファイル内の要素によってオーバーライドできます。惨めさを好まない限り、使用しないでください。
于 2013-10-19T18:14:06.047 に答える