ASP.NET MVC:コントローラーがいつキャッチブロックに入るかを知るためのフィルターはありますか? OnException は、4 つの未処理の例であるという事実に基づいて機能していません。
1 に答える
0
ActionFilterAttributeから派生した独自の属性を作成できます
public class LogExceptionAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
//here you can inspect filterContext for exceptions
base.OnActionExecuted(filterContext);
}
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
base.OnResultExecuting(filterContext);
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
base.OnResultExecuted(filterContext);
}
}
次に、属性をアクション/コントローラーに配置するか、グローバル フィルターとしてGlobal.asaxに登録します。ApplicationStart()
例:
[LogException]
public ActionResult Index()
{
throw new Exception();
return View();
}
これにより、例外をログに記録したり、他のことを行うことができます。
于 2012-11-09T13:38:41.353 に答える