学习阿里巴巴开发手册-8
来源:互联网 发布:虚拟机mac os x 10.10 编辑:程序博客网 时间:2024/06/05 22:43
1.Java类库中定义的一类RuntimeException可以通过预先检查进行规避,不应该通过catch来处理,比如空指针异常,数组边界越界异常等。
2.异常不要用来做流程控制,条件控制。因为异常的处理效率比条件还要低
3.对大段代码进行try-catch是不负责的,需要区分稳定代码和非稳定代码,对非稳定代码的catch尽量区分异常类型,在做对应的异常处理
4.捕获异常是为了处理它,不要捕获了却什么也不处理而抛弃之,如果不想处理,将异常抛给它的调用者,业务使用者,必须处理异常,将其转化为用可以理解的内容
5.try块放到了事务代码中,catch异常后,如果需要回滚,一定要手动回滚事务。
6.finally块必须对资源对象、流对象进行关闭。
7.不能在finally块中使用return,因为finally块中return之后方法结束执行,不会再执行try块中的return语句
8.捕获异常和抛异常必须是完全匹配,或者是捕获异常是抛异常的父类。
9.方法的返回值可以为null,不强制返回空集合,或者空对象等,必须添加注释说明什么情况下会返回null值,调用方需要进行null判断防止NPE问题
必须考虑到远程调用失败、序列化失败、运行时异常时返回null情况。
10.防止NPE,注意NPE产生的场景
1)返回类型为基本数据类型,return包装数据类型的对象时,自动拆箱有可能产生。
2)数据库查询结果可能为null
3)集合里的元素即使isNotEmpty,取出的数据元素也可能为null
4)远程调用返回的对象,一律要求进行空指针判断,防止NPE
5)对于Session中获取的数据,建议NPE检查,避免空指针
6)级联调用obj.getA().getB().getC();一连串调用,易产生NPE
11.定义时区分unchecked/check异常,避免直接抛出 newRuntimeException(),更不允许抛出Exception或者Throwable,应使用有业务含义的自定义异常。(DAOException,ServiceException).
12.对于公司外的http/api开放接口必须使用“错误码”;而应用内部推荐异常抛出;跨应用间RPC调用优先考虑使用Result方式,封装isSuccess()方法、错误码、错误简短信息。
- 学习阿里巴巴开发手册-8
- 学习阿里巴巴开发手册-1
- 学习阿里巴巴开发手册-2
- 学习阿里巴巴开发手册-3
- 学习阿里巴巴开发手册-4
- 阿里巴巴java开发手册学习
- 学习阿里巴巴开发手册-5
- 学习阿里巴巴开发手册-6
- 学习阿里巴巴开发手册-7
- 学习阿里巴巴开发手册-补充
- 学习阿里巴巴开发手册-9
- 学习阿里巴巴开发手册-10
- 学习阿里巴巴开发手册-11
- 学习阿里巴巴开发手册-12
- 学习阿里巴巴开发手册-13
- 学习阿里巴巴开发手册-14
- 学习阿里巴巴开发手册-15
- 阿里巴巴Java开发手册学习小结8-异常日志
- PHP学习笔记02——简单的php脚本
- jQuery slideDownUp动画效果
- 第一个Fragements
- CNN中的卷积和池化的理解
- (Python)异常处理try...except、raise
- 学习阿里巴巴开发手册-8
- Ubuntu14.04虚拟机和宿主机(win7)之间的文件传输 (FTP)篇
- 嵌套的子类
- angularjs 实现简单的快递页面
- AngularJS中的$http服务请求数据
- jQuery 自定义动画
- jmeter http 请求返回socket closed的解决办法
- 用 Command设计模式实现 Undo和Redo 功能
- 计算圆形和长方形的面积