このクラスから継承する特定のタイプのコントローラに対して一般的なエラー処理を提供するために、Controller.OnExceptionハンドラメソッドをオーバーライドするベースコントローラクラスがあります。 (これらはJSON結果を返すAPIコントローラです)。 OnExceptionメソッドは、コントローラによって例外が発生したときには決して呼び出されません。誰かが私が間違っていることを見ているのですか、それともこの状況を処理する良い方法がありますか?ASP.NET MVC Controller.OnExceptionが呼び出されていない
基本クラスMVC 1.0を使用して
:
public class APIController : Controller
{
protected override void OnException(ExceptionContext filterContext)
{
//This is never called
filterContext.Result =
new JsonResult();
base.OnException(filterContext);
}
}
継承クラス:
public class MyController : APIController
{
public AjaxResult ForcedException()
{
throw new SystemException();
}
}
"コントローラによって例外が発生したときにOnExceptionメソッドが呼び出されることはありません" - デバッガでこれをチェックしましたか?あなたの質問からは分かりません。 –
私はデバッガから試して、ログステートメントを使用し、デバッガの外で実行しています。どちらも私のために働いていないようです。 –