首页 新闻 会员 周边

异常处理思路

0
悬赏园豆:5 [已解决问题] 解决于 2010-08-16 17:26

  现在的做法:发生一个异常在逻辑层拦截,记录到数据库中,再抛出自定义异常。为了偷懒所以都是Exception,代码如下:

catch (Exception ex)
{
Log4.Debug(ex);
//EntLog.WriteText(ex);
throw new Exception("ArticleBll AddArticle throw Exception");
}                                      

始终觉得不太妥当,大家有好经验,请赐教!

问题补充: 抱歉,我没表达清楚。我本来的意思是,每出一个异常就马上记录到文件或数据库中,这样会比较慢(让用户等得有点久等)。我想把异常排入队列,等队列到一对数量,或轮询批量写入到数据库。不知如何?
James Lu的主页 James Lu | 初学一级 | 园豆:195
提问于:2010-08-16 15:56
< >
分享
最佳答案
0

Log4.AsyncDebug(ex);

不用等待写日志的结果.

你的日志系统需要提供这样的功能,类似MSMQ的能力.

收获园豆:3
Launcher | 高人七级 |园豆:45045 | 2010-08-16 17:20
就是要这个,感谢。
James Lu | 园豆:195 (初学一级) | 2010-08-16 17:25
其他回答(3)
0

记录时可以对ExceltionType进行归纳统计,并根据不同的类型提示相应的友好错误提示,而不是把原始错误抛给用户。

邀月 | 园豆:25475 (高人七级) | 2010-08-16 16:17
这个是逻辑层,异常是抛给UI的,友好错误提示在UI。
支持(0) 反对(0) James Lu | 园豆:195 (初学一级) | 2010-08-16 16:46
0

在不确定异常类型时,只能这样做。

收获园豆:2
Astar | 园豆:40805 (高人七级) | 2010-08-16 16:17
你项目中有没有统一异常管理呢?
支持(0) 反对(0) James Lu | 园豆:195 (初学一级) | 2010-08-16 16:45
@James Lu:数据访问类,也就是dbhelper中的异常我会记录到文本文件中。其它地方的异常会做为日志记录到数据库中,但是一般容易发生异常的地方,都用友好信息反映给UI了。
支持(0) 反对(0) Astar | 园豆:40805 (高人七级) | 2010-08-16 16:49
0
Log4.Debug(ex); 再抛出异常呢?
清海扬波 | 园豆:825 (小虾三级) | 2010-08-16 16:30
throw new Exception("ArticleBll AddArticle throw Exception");
支持(0) 反对(0) James Lu | 园豆:195 (初学一级) | 2010-08-16 16:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册