Java初级程序员编码规范——异常处理

          对于一个大的项目,最怕两件事情:

                1. 系统出现问题我们不知道,等到问题慢慢变大,用户开始投诉后才知道“哦,我们系统出现问题了呀!”。 多么可怕!!!

                2. 系统出了问题,但是就是找不出来哪里出现了问题。

 

        对于第一个问题,如果出现,后果非常的严重。 因此,为了尽量避免这样的问题,我们需要在异常处理方面尽最大的力量做到更好!

 

        下面,我先将一段在项目中用到的一段代码贴出来:

       

       我们很多人看到这段代码,会认为这段代码没有什么问题(正常运行情况下,这段代码也不会出现问题)。 但是,如果问题真的在这段代码中出现,开发人员很难知道出现了问题。如果是这种情况,那么问题就大了,就等着用户来投诉吧!!

    主要有以下的原因:

         1. 丢掉了异常。 异常信息就算打印到了堆栈,也不会有人看到!除非问题出现,有用户投诉时,你才发现出现了问题,开始去查找日志!所以,好像看起来很严谨的代码,其实作用并不大。

         2. 异常处理再加上框2中的空判断。完美的避开了所有的正确答案。本来需要更新文档,结果什么错误也没有报,什么也没有做。 

 

   所以————对于开发人员: 绝大部分场景,不允许捕获异常,不要乱加空判断!只有明显不需要关心的异常,如关闭资源的时候的IO异常,可以捕获,然后什么都不干。其他的时候,不允许捕获异常,都抛出去,到controller层由AOP去处理。 对于空判断大部分是不需要的,你如果写了空判断,必须要测试为空和不为空二种场景,要么就不要写空判断。

 

新手最容易犯的错误:  到处捕获异常,到处加空判断,自以为写出了“健壮”的代码,实际上完全相反。

      比如,某一天你在一个团队中负责一部分功能代码。最后提交代码时发现一般代码是 try-catch 和空判断,给人的感觉就是 “ 垃圾 ”。    另一方面,这样做会掩盖很多的错误。

        所以,上面的代码可以这样修改(异常向上抛给controller层的AOP处理)

                                            

        对于异常的定义我在这里就不介绍了(本博文主要是讲一下规范)。

 

总结:

  •        异常由专门的开发人员负责开发,在开发之前实现定义好异常类
  •        不允许开发人员捕获异常
  •         后台异常(如队列等)异常一定要有异常通知机制,要第一时间知道异常
  •         少加空判断,加了空判断就要为测试为空和非空的场景。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值