异常处理
Java类库中定义的可以通过预检查方式规避的RuntimeException异常不应该通过catch方式来处理:
NullPointerException
IndexOutofBoundsException...最外层的业务使用者,必须处理异常,将其转化为用户可以理解的内容
如果有try块放到了事务代码中 ,catch异常后,如果需要回滚事务,一定要注意手动回滚事务
finally块必须对资源对象,流对象进行关闭...,不会再执行try块中的return语句
捕获异常与抛出异常必须完全匹配,或者是抛异常的父类
方法的返回值可以为null,不强制返回空集合或者空对象等,必须添加注释充分说明什么情况下会返回null值...error message, 对于调用端解决问题的帮助不会太多.如果加了栈信息,在频繁调用出错的情况下,数据序列化和传输的性能损耗也是问题
避免出现重复的代码,即DRY(Don't Repeat Yourself...)原则:
重复的代码在以后的修改时,需要修改所有的副本,容易遗漏
抽取共性方法,或者抽象公共类,或者组件化
一个类中有多个public方法,都需要进行数行相同的参数校验工作,这个时候就要进行抽取: