功夫之道,无招胜有招。开发之道,基础要牢。然而做开发的时间越久,越是发现一些基础知识的巧妙与必然,很多三年五年的coder有时候都不见得能搞明白一些基础的东西,因为平时开发压根不会用到,只需要会使用框架,可以CRUD就好了。但是拼到最后,问题一定可以在基础知识上找到答案,不能不得不赞叹语言设计者的智慧。
本文主要抛砖引玉,throw 一些 exception,希望大家可以catch后做出自己的业务处理
一、只针对该使用异常的情况下才使用异常
示例(参考Effictive Java 第九章)
代码语言:javascript复制try{ int i = 0; while(true){ range[i ].climb(); }} catch(ArrayIndexOutOfBoundsException e){}
正确做法
代码语言:javascript复制for (Mountain m:range){ m.climb();}
只在有需要的地方抛出异常,不要通过异常来决定正确的业务逻辑。
二、不要忽略异常
通常我们为了方便,会将整个方法体放入try catch。真的是撸代码时候爽的飞起,万一真的进入catch会有想死的感觉啊。
- 整个方法方法捕获异常会非常降低效率,可以写一个循环尝试一下
- 整个方法体万一抛出一个NullPointException,再加上一般这么写的代码都会太“优美”,无法排查跟踪错误
- 更有甚者,请看下面代码
try { // your code begin ··· // your code end}catch (Exception e){// Do nothing}
catch中什么也没做,没有任何处理,并且所有的Exception都被捕获了,然后····没有然后了。异常捕获之后一定要做自己的业务处理或者声明自定义异常。
代码质量,取决于后来维护人每分钟骂娘次数,共勉!