ASP.NET应用程序全局捕获错误(例如:Global.asax)是否存在问题?我查看了良好的错误处理实践,但它并没有太多关于此方面的内容。
我的经验是,在排除某些非常特殊的情况(例如事务)之外,我们编写的大多数ASP.NET应用程序都是类似于以下内容的:
void ButtonEventHandler(object sender, EventArgs e) {
Page.Validate();
if (Page.IsValid) {
//Do a database insert or update thru relevant datalayers.
//If its a transaction then we rollback internally and rethrow
//the exception.
}
}
为什么不设置全局异常处理程序?通常(在这种情况下),我所能做的唯一事情就是优雅地终止操作并告诉用户再试一次。