[.NET MVC] ASP.NET MVCグローバルエラープロセッサの設定
890 ワード
(1)
(2)サイトに対して異常を扱うControllerが必要であり,この属性を加える.一般的なWebサイトでは、Controllerクラスを直接継承するのではなく、ユーザー定義のControllerサブクラスをすべて継承します.したがって,この属性はこのControllerサブクラスに追加するだけでよい.
FilterAttribute
とIExceptionFilter
を継承する属性クラスを作成するpublic class ExceptionFilter : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext exceptionContext)
{
Exception ex = exceptionContext.Exception;
string errorMessage = string.Format(
"Error Message: {0}
Error StackTrace: {1}",
ex.Message,
ex.StackTrace
);
exceptionContext.HttpContext.Response.Write(errorMessage);
AppLog.Write(errorMessage);
exceptionContext.ExceptionHandled = true; //
}
}
(2)サイトに対して異常を扱うControllerが必要であり,この属性を加える.一般的なWebサイトでは、Controllerクラスを直接継承するのではなく、ユーザー定義のControllerサブクラスをすべて継承します.したがって,この属性はこのControllerサブクラスに追加するだけでよい.
[ExceptionFilter]
public class MainController : Controller
{
//...
}