MSDN によると、AppDomain.Unload により、アンロード中の AppDomain 内のすべてのスレッドがスレッド アボート例外をスローします。
ドメイン内のスレッドは、スレッドで ThreadAbortException をスローする Abort メソッドを使用して終了されます。スレッドはすぐに終了する必要がありますが、finally 句で予測できない時間実行し続ける可能性があります。-- MSDNより
したがって、私の理解では、この AppDomain で実行されると予想される場所にコードを記述するたびに、スレッドの中止がいつでも任意のスレッドで発生する可能性があることを期待する必要があります。これは本当ですか?すべてのコードは、ThreadAbortException がいつでもスローされる可能性があると想定する必要がありますか?
実際には、これは実質的に catch(Exception ex)を排除します。これは、ThreadAbortException をキャッチして処理しようとするためです。通常、実際にはログに記録すべきではないエラーをログに記録します (AppDomain のアンロードは実際には例外ではないため)。
不必要な例外処理/エラー ログを回避するために必要なその他の考慮事項はありますか?