我觉得很难说哪是正确的,哪是不正确的。
但是上面这种做法很不得当,所有的错误直接屏蔽掉,这样一旦出现了错误什么都不处理,这对于任何程序来说都不可取。
我的建议是出现错误的时候把错误的信息和错误的调用堆栈保存下来,以便于开发人员处理。
这也是Windows操作系统,还有QQ等很多软件一旦出错都会出现一个发送错误报告的提示,这些错误信息对于提升软件质量来说是很重要的。
catch抓的错误,要么记录下来,要么直接发送错误邮件给管理员,比如用139邮箱,可以收到短信
如果是分层简单的话,一般的方法上,我会加入out string ErrorString的参数。然后统一在最上一层进行处理。如果比较复杂。需要思考“怎么对错误进行分类处理”。然后在写程序中,分别对待。
学习 。
首先,上面的写不正确。
既然抛出异常,就是希望能够得到有效处理,上面的方法在异常抛出后,隐藏了异常情况。
在 ASP.NET 中,可以在页面级或者网站级进行统一处理。
在页面级,可以通过页面对象的 Error 事件进行处理。
protected void Page_Error(object sender, EventArgs e)
{
Exception exception = this.Server.GetLastError();
// 针对异常进行处理
}
在网站级,通过在 Global.asax 中的 Application_Error 进行处理
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
Exception ex = this.Server.GetLastError().InnerException;
// 针对异常进行处理
}