多くの例外が投げられる可能性がある長いバッチ処理を実行するアプリがあります。バッチ内の1つのアイテムの間に非クリティカル例外がスローされた場合は、単にログに記録して続行して、後で他のバッチアイテムを続行して問題を解決できるようにします。どのような例外を捕まえるべきではないですか?
OutOfMemoryException
のようないくつかの例外は、アプリケーション全体に壊滅的なものであり、これらは私がグローバル例外ハンドラにバブルアップしてエラーをログに記録し、アプリケーションを停止するように再提出したいと思います。
私の質問は、(ロギング後に)他のすべてを抑制しながら、私の下の例外ハンドラで再スローすることができる致命的な例外のリストです。
ありがとうございます!
編集:が少し手の込んだ、ここで私のプログラムの基本的な構造は
foreach(var item in longItemList)
{
try
{
bigDynamicDispatchMethod(item);
}
catch(Exception ex)
{
logException(ex);
}
}
で、このループはトップレベルではかなりあるので、スローされる可能性の例外の膨大な数が潜在的にあります。私のアプリの。プロジェクトのコードの99%がディスパッチ方法の背後にあります。私は低レベルで合理的な例外処理を行いますが、バグはまだ進行しており、例外がスローされた後にバッチ内の他の無関係なプロセスを停止したくありません。
私のアプリの中でどこにでも例外がスローされるのを見つけることは大変な仕事のように思えますし、重大な例外のブラックリストを取得する方が簡単かもしれません。
これに対処するためにアプリを構造化するより良い方法はありますか?私は提案に開放されています。
可能重複http://stackoverflow.com/questions/5507836/which-types- –