Java笔记1.3--异常处理

异常处理:

1.finally中放资源回收的代码。(即使try catch中有return还是执行finally,只有system.exit(0),才不执行后面的finally)

释放IO连接,数据库连接,对象方法的强引用设为Null,清空clear集合。

2.当心runtimeException。常见的runtimeException有空指针异常,除0异常。无需用try catch,一旦发生就终止程序。

3.尽可能缩小try的监控范围。如果两个业务没有联系,就不要放在一个try里,要分开

4.在处理异常时候,先用特定的专业异常类处理,最后用Exception兜底。例如:

try{
    IO代码
    数据库操作代码
}
catch(IOException ioe){处理IO异常}
catch(SQLException ioe){处理数据库异常代码}
catch(Exception ioe){最后用Exception的基类处理}

在catch中,尽可能恢复异常(比如连接失败,进行重连,如果还失败,输出错误信息),或者详细输出异常信息,而不仅仅是抛出异常。(不好的案例catch(Exception ex){ex.printStackTraec();})

5.在写关于for循环的try时,最好把for放在外面,try catch放在里面,这样才能在迭代过程中某次出现异常,执行完catch后不影响下一次迭代。

finally,final,finalize的区别:

finalize:相当于c++的析构函数,对象回收前调用,不建议重写该方法,一般采用object默认的,重写不好可能导致内存泄漏。

final:1.作用在类上的时候表示类不能被继承,final类的方法也会隐式设置为final,不可被覆盖。2.也可以只在某个方法上作用final,动机和类一样,防止子类通过覆盖方法修改逻辑。3.作用在变量上,为常量不可修改。4.作用在引用上,该引用不能指向其他的内存地址,但是该引用指向的值可以修改。

方法:在详细设计和代码review中根据业务需求在类和方法前加final。在finally中加入资源回收。项目无需重写finallize方法。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值