首页 新闻 会员 周边 捐助

求正确的异常处理方案asp.net

0
[已关闭问题]

请问如何进行异常出来才算正确。通常很多人会这样写

try

{

  ...实现代码

}

catch{}

请问上面这样写有什么弊端?

应该如何正确的写异常代码。假如有一段代码你不知道他到底可能会出现什么异常。那么又应该怎么来写这里的try catch 语句?

yzy的主页 yzy | 菜鸟二级 | 园豆:317
提问于:2010-04-08 17:57
< >
分享
其他回答(4)
0

我觉得很难说哪是正确的,哪是不正确的。

但是上面这种做法很不得当,所有的错误直接屏蔽掉,这样一旦出现了错误什么都不处理,这对于任何程序来说都不可取。

我的建议是出现错误的时候把错误的信息和错误的调用堆栈保存下来,以便于开发人员处理。

这也是Windows操作系统,还有QQ等很多软件一旦出错都会出现一个发送错误报告的提示,这些错误信息对于提升软件质量来说是很重要的。

Hawkon | 园豆:225 (菜鸟二级) | 2010-04-08 18:44
0

catch抓的错误,要么记录下来,要么直接发送错误邮件给管理员,比如用139邮箱,可以收到短信

站在天空下的猪 | 园豆:135 (初学一级) | 2010-04-09 09:59
0

如果是分层简单的话,一般的方法上,我会加入out string ErrorString的参数。然后统一在最上一层进行处理。如果比较复杂。需要思考“怎么对错误进行分类处理”。然后在写程序中,分别对待。

forhells | 园豆:724 (小虾三级) | 2010-04-09 12:46
0

学习 。

zfy | 园豆:169 (初学一级) | 2010-04-09 21:41
0

首先,上面的写不正确。

既然抛出异常,就是希望能够得到有效处理,上面的方法在异常抛出后,隐藏了异常情况。

在 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;

        // 针对异常进行处理
}

冠军 | 园豆:1086 (小虾三级) | 2010-04-17 23:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册