log,exception最佳实践

项目组对log和exception的讨论结果。希望更多的人参与讨论。
1
log

1.1 log.error表示系统级错误<o:p></o:p>

1.2 log.warn表示应用级错误<o:p></o:p>

1.3 服务初始化或结束用log.info<o:p></o:p>

1.4 log.debug替代outdebug要判断isDebugEnable<o:p></o:p>

1.5 log.warn("",e)替代e.printstack<o:p></o:p>

1.6 log4e生成log相关代码<o:p></o:p>

1.7 Log信息要保证可读性,需记录现场信息,如当前处理id<o:p></o:p>

2 exception

2.1 try catch内的代码不要太长<o:p></o:p>

2.2 因为性能原因,try catch少放循环内<o:p></o:p>

2.3 尽量避免catch(Exception)这样的写法<o:p></o:p>

2.4 不同模块定义不同的exception<o:p></o:p>

2.5 建议创建应用的基类exception,特别是有定义error code需要的应用<o:p></o:p>

2.6 只要catch就要log error message<o:p></o:p>

2.7 catch并封装成另一种exception,如果不nest原来的exception就要log stackTrace<o:p></o:p>

2.8 持久层throw dataAccessException,业务层throw checked exception,展现层只显示exception信息<o:p></o:p>

2.9 规范的exception流程定义如下:<o:p></o:p>

业务层不需处理的runtime exception,由展现层定义的exception controller捕获,交给相应的error页面显示并记录stack信息。业务层捕获下层的exception,并封装成业务层的checked exception,如果nest所捕获的exception,则仅log error message,如果不nest就需要用log.warn(“”,e)记录stack信息。展现层捕获业务层的exception,应由处理业务层exceptionerror页面来处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值