0

我是一个新手 .net mvc 开发人员,我想知道,是否可以在不使用著名的 try/catch 语句的情况下开发自己的错误处理程序。我正在使用 XML 文件在视图中呈现组件,例如,我想获取一条错误消息,以便我知道我违反了基于 xml 文件的约束

(例如,如果我添加另一个没有 >'type' 属性的标签,这可以在运行时为我生成一条消息)。我希望我提前说清楚谢谢,

4

3 回答 3

1

在 Global.asax 中可以捕获异常,global.asax 在您的应用程序上有许多事件处理程序,例如 Application_start 或您需要 Application_Error

void Application_Error(){

     Exception exception = Server.GetLastError();
     //do what you need with the exception...
}
于 2012-06-05T20:26:39.080 回答
0

实际上,我更喜欢使用 ActionFilter 类来覆盖 OnActionExecuting、OnActionExecuted、OnResultExecuting 和 OnResultExecuted 方法。而且我认为xml属性的控制不能从c sharp完成,我将使用if条件。不管怎么说,还是要谢谢你

于 2012-06-06T16:49:40.900 回答
0

我相信处理异常的最佳位置是 global.asax.cs。

protected void Application_Error(object sender, System.EventArgs e)
{
    // custom logger
    IErrorLogger errorLogger = new CustomLogger();

    // config of error handler
    MvcExceptionHandlerConfig config = new MvcExceptionHandlerConfig("Error", "Error", 404, 500);

    // init and handle
    new MvcExceptionHandler.MvcExceptionHandler(this, errorLogger, config).Handle();
}

此处提供演示:https ://github.com/mholec/mvcexceptionhandler

当然,这取决于您要处理什么样的异常。Application_Error 是处理错误 400、404、5xx 等的好地方,另一方面,它不适用于身份验证错误(您需要创建特殊过滤器)。

于 2015-10-07T12:19:18.070 回答