我是一个新手 .net mvc 开发人员,我想知道,是否可以在不使用著名的 try/catch 语句的情况下开发自己的错误处理程序。我正在使用 XML 文件在视图中呈现组件,例如,我想获取一条错误消息,以便我知道我违反了基于 xml 文件的约束
(例如,如果我添加另一个没有 >'type' 属性的标签,这可以在运行时为我生成一条消息)。我希望我提前说清楚谢谢,
我是一个新手 .net mvc 开发人员,我想知道,是否可以在不使用著名的 try/catch 语句的情况下开发自己的错误处理程序。我正在使用 XML 文件在视图中呈现组件,例如,我想获取一条错误消息,以便我知道我违反了基于 xml 文件的约束
(例如,如果我添加另一个没有 >'type' 属性的标签,这可以在运行时为我生成一条消息)。我希望我提前说清楚谢谢,
在 Global.asax 中可以捕获异常,global.asax 在您的应用程序上有许多事件处理程序,例如 Application_start 或您需要 Application_Error
void Application_Error(){
Exception exception = Server.GetLastError();
//do what you need with the exception...
}
实际上,我更喜欢使用 ActionFilter 类来覆盖 OnActionExecuting、OnActionExecuted、OnResultExecuting 和 OnResultExecuted 方法。而且我认为xml属性的控制不能从c sharp完成,我将使用if条件。不管怎么说,还是要谢谢你
我相信处理异常的最佳位置是 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 等的好地方,另一方面,它不适用于身份验证错误(您需要创建特殊过滤器)。