美文网首页
阿里编程规约之异常日志

阿里编程规约之异常日志

作者: devKen | 来源:发表于2020-10-20 21:22 被阅读0次

    在java里,异常是分成两类的。受检异常和非受检异常。非受检异常就是我们常说的error和运行期异常。非受检的意思,如果它发生了,程序就应该中断。所以非受检不是我们可以不用检查了,而是我们要尽量避免它。大家不要遇到非受检的异常,就慌张。出现这种异常,恰恰就是程序的一种自我保护。就像人会生病,发烧,温度升高是为了提高人的免疫力一样。当出现这种异常时,我们应该冷静分析它的栈信息。最可怕的不是报了一大堆错,而是程序出现了问题,但是没有任何报错。这样对程序员来说才是最大的噩梦。大家对此应该是深有感触的。受检异常,一般就是我们需要在程序中显性指出处理办法的异常。我们的try/catch代码块就是为此服务的。当然你也可以直接throws出去。但是既然程序把处理异常的权力在这个时候给我们了,那我们一定要谨慎对待。下面我们就先看一下开发手册里对于这块是怎么要求的吧。


    异常处理.jpg

    从上图我们其实可以看出来,它专门指出了需要避免小心NPE(NullPointerException)的场景,并且强调防止空指针异常是程序员的基本素养。另外它也提到了jdk7之后,关闭流可以通过try-with-resources的方式。这是因为在这个版本的jdk之后,流接口就开始继承AutoCloseable。如果我没记错的话,大家有兴趣可以深入了解下。然后它也提到,可以用Optional类避免NPE。这个也是jdk8的新的api。有兴趣的朋友的可以看一下《Effective JAVA》中第55条“谨慎返回optional”。最后它着重提到DRY原则。避免重复代码,真的是大家在开发过程中要不断考虑的事情啊。
    对于这个条目的第二个部分,日志规约。我们需要先熟悉熟练使用常见的日志框架,log4j,logback等。谨慎的输出日志,大肆输出日志会带来性能问题,大家如果做过性能测试,就会发现,日志输出有时会到性能测试结果不准确的。日志打印要刚刚好,在合适的位置打印。不要哪里都打。打完之后一定要考虑一下,这个日志对于你后续在生产上排查问题是否有帮助。切记啊!

    相关文章

      网友评论

          本文标题:阿里编程规约之异常日志

          本文链接:https://www.haomeiwen.com/subject/xvkjmktx.html