public ActionResult Foo(int id)
{
if (someCheckFails)
{
Log.Error(new SomeTypeOfException());
return View("SomeErrorView");
}
return View();
}
上記のコードは、エラーが記録され、失敗条件が満たされた場合(Unauthorized、FileNotFoundなど)にリダイレクトされます。MVCグローバルエラー処理パターンコードの匂い
これは私にとってはまったく臭いではありません。 DRYに違反し、私はロガー以外の場所に決して行き渡らない例外を作成しています。
同じことが、よりよい読み取る乾燥機であり、MVCと思われる上記の例外の種類を記録し、リダイレクトするGlobalFiltersを設定することにより達成され、次いで、単に任意のアクション
public ActionResult Foo(int id)
{
if (someCheckFails)
throw new SomeTypeOfException();
return View();
}
から投げることができます方法。しかし、実際に何が起こっているのかは、フローコントロールの例外を使用してであることが私には分かります。
これについてのご意見はありますか?上記のスニペットをお好みですか?それとも私が逃した三つ目の方法がありますか?