Fork me on GitHub

阿里巴巴Java开发手册———个人追加的见解和补充(二)

前言

如果你没有看过之前的(一)或者没有下载这份手册的话,下面有链接,还是对照手册食用毕竟好

http://www.cnblogs.com/linkstar/p/6413402.html

该说的我觉得(一)里面我都说完了,那么就直接进入正题吧。

 

异常日志

对于异常的处理,很多时候对于我们来说是很偷懒的,不是吗?

我见过太多的就是打印出异常的日志,或者是连日志都不写,直接控制台输出一下就啥也没有了。更有甚者直接把所有异常往外抛的。还有就是直接try-catch所有的代码,“信誓旦旦”的认为所有的异常我都捕获了,你总不能再出问题了吧。

对于这些。。。我送一句话,不去处理的异常就是错误

异常捕获之所以存在,是因为java希望,即使突然出现异常,有效的处理,让这个问题不会影响到整个应用的运行,从而提高程序的稳定性,也会提醒程序员发现和解决问题。

 

异常处理

首先给一下在java中异常的分类,大多数我们都应该遇到过,有些可能没遇到过,了解他们的关系。

3、这就是我在前面所说的,有的同学偷懒,就捕获全部的异常。其实我们要做的其实很简单,对于不稳定的代码进行捕获他有可能出现的异常,做相应的异常处理,现在的IDE都很智能,都会提示哪里会出现什么样的异常,对于我们来说已经很方便了。

 

4、将异常处理为可以和用户或者说是使用者可以理解的错误。我要补充的是:但是要和原有的错误进行区分。比如登录功能,我只是做个假设嘛,如果真的出现异常,你看看你捕获的是什么异常,不能都只是提示用户“用户名密码错误。”,那用户鬼知道是你服务器的bug导致登录失败,等再去看日志已经晚了,例子可能不是很恰当,但差不多是这个意思。

 

6、我补充一下 try-with-resources 语句,这个是JDK7的特性。我原来也不知道,也是看了手册才知道有这个东西。会考虑使用。

第一、 try-with-resources 会自动关闭资源。

第二、关闭顺序和打开顺序相反。

第三、还是可以使用catch和finally但是,catch和finally会在资源关闭后才运行。

我这边给出简单的语法形式

try(资源的打开)

     资源的使用

}catch{

具体参考官方文档:

http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

 

9、返回值能为null就为null,我之前看到有书中写到“如果一个团队在写代码的时候,遇到List的时候,永远不返回null如果没有数据就返回一个size为0的List,但是不是null,这样大家都不需要对List判空,只需要判断大小即可,否则对于一个List不仅需要判空也需要判断大小。”但是我在实际中发现,有的时候null作为一个识别是很好的,就像手册中说的,我们只需要在接口上面明确给出,什么样的情况之下会返回null,什么样的情况下不会即可,让使用者去判断,我觉得这样在实际中这个识别还是很有用的,毕竟NPE大家都不希望的,不判断心里不安心。

 

13、在后期优化的时候,抽取公共方法很重要,后期修改如果不是公共的话,有可能出现,有的这边改了,那边是类似或者相同的方法,但是却没改的情况就很尴尬。

 

日志规约

1、第一条就把我吓了个半死,本人使用的是Log4j,确实有依赖,但是确实这条说的没错,但是可能这对与项目大的情况下比较重要,现在对于我来说并不准备换,可能之后会作考虑。

 

后面几条我总结个人一起说一下,首先日志的打印我们这边的规矩是这样的。

一、日志描述必须清楚,when?where?who?what?什么时候,这个倒是log4j会有,where就是那里发生的错误,案发地点在哪里,who就是谁出现的这个错误,what就是出现的是什么错误。这些明确,一般这个错误定位就简单了。

二、日志必须进行级别分类,不能一股脑全部debug也不能全部error。

三、不必要的日志不写,不能浪费磁盘资源,不能导致日志繁重让别的错误找起来麻烦。

四、如果有专人,那么专人会去查看,否则自己必须去在测试时查看自己的日志是否出现问题,有问题立即处理解决。

我这边也学到了一些,一个是日志的分类其实很重要,对于定位错误问题很重要,否则对着那么长的日志谁看的都烦心,日志存放的时间,我们之前好像都是永久存放的。。。有人固定去删除。可能15天这个时间比较有参考价值。

在日志上面除了以上的几点要注意的之外,还需要注意的是,不要只看项目的日志,有时一些容器本身产生的日志也大的可怕,比如经常使用的tomcat,它本身就会产生很多的日志文件,对于服务器也会占用资源,所以也要进行处理。网上搜索如何关闭tomcat的日志文件打印即可。

 

总结

这里是对于那些像我一样的年轻的程序员说的,不要害怕去看异常和日志,很多人看到一大堆英文就害怕,其实都是纸老虎,看明白了之后慢慢你就不怕看了。

一开始的时候我也害怕看它,也看不懂,渐渐的就学会了,慢慢就喜欢上了。

因为你能从错误中汲取教训而且积累了很多的经验,说实话,失败的经验或许比成功的经验更多更重要,不是吗?

posted @ 2017-02-19 14:33  LinkinStar  阅读(1465)  评论(0编辑  收藏  举报