weixin_42307339 2009-04-24 22:59
浏览 304
已采纳

关于异常和日志的处理

各位好,我有两个方面的疑问。
一.异常处理。
假设我有web层--->service层--->dao层。
如果我在dao层出现了异常,比如DataAccessException。我该如何处理呢?
我试了一下,觉得有以下几种方案:

1.最简单的是在web层捕获DataAccessException然后处理。

2.在dao层捕获,但不处理,像service层抛,知道抛到web层处理。
但是这样做,每一层都会有
try catch 语句,感觉很麻烦。

3.同2类似,但是使用spring的annouation注释,相对减少try catch
我想请问那种方法好点?

还有我觉得可以自己定义一个GeneralException继承自RuntimeException。
每次补货异常,但是抛出这个GeneralException这个异常,然后统一处理。

二.日志的处理

我的解决方法有以下几点:

1.将需要记入日志的类里面写上诸如:
Logger=LogFactory.getLogger();
logger.Info()之类的语句?
但是这样会做很多类都会有相同的日志语句。

2.利用spring aop 实现。
会不会有性能问题?

3.在自定义异常的那个GeneralException类里加上日志功能。
每次处理异常的时候同时处理日志。

请问那种方法好,或者有什么更好的方法?

                                 谢谢回答。
  • 写回答

2条回答 默认 最新

  • scvptz1 2009-04-27 22:50
    关注

    如果dao层出现异常,建议还是throw到service层吧,否则怎么处理事务问题那?当然dao层能恢复的就直接在dao层恢复了。
    日志的话,不一定是抛例外了才记录日志吧,有的是调试用的,否则部署了以后,很难调试,建议外部的一些接口上面(比如webservice)还是要有日志,便于确定缺陷是出在service这里还是客户端上面。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大