public ActionResult Foo(int id)
{
if (someCheckFails)
{
Log.Error(new SomeTypeOfException());
return View("SomeErrorView");
}
return View();
}
上述代码记录错误并在满足失败条件时重定向(未授权,FileNotFound或其他)。MVC全局错误处理模式代码异味
这听起来不太适合我。它违反了DRY,并且我创建了一个除了记录器之外永远都不会去的异常。
同样可以通过设置GlobalFilters登录并重定向不同类型的异常,然后简单地从任何行动
public ActionResult Foo(int id)
{
if (someCheckFails)
throw new SomeTypeOfException();
return View();
}
上面写明更好投掷,是机,实现和似乎是MVC办法。然而,我发现现在真正发生的是使用流量控制例外,大家都知道这很糟糕,对吧?
你对此有何看法?你更喜欢哪个片段?还是有第三种方式我错过了?