你真的懂finally了吗?

finally

finally太强大了,不管发生什么错,有没有被捕获,它都会无条件执行。24岁的我,对男朋友的要求,只有一个,就是像finally就行。

用法

finally一定是和try一起用的,即使没有必须要捕获的异常,要是有无条件最终都需要执行的东西的时候,也建议用try{}finally{},把必须要执行的东西放finally里,即便程序发生不可被捕获的error(其实error也是可被throwable捕获的,只是捕获了也没办法解决,一般不捕获,只捕获Exception异常),finally也会执行,即便try里面有return代码,finally还是会执行。

finally就是打不还手,骂不还口的出气筒。它真的可以做到,任时间匆匆流去,我依然等你。finally可以作为最终归宿。

案列

像多线程里使用countdownlatch来使程序做暂时的等待,countdownlatch.countdown()就为了避免各种情况导致的程序卡死,应该放在finally执行;还有各种资源,流的释放,也必须放finally执行。

来说说异常!

异常的父类是throwable,它的子类有error,exception;

图片.png

error

如:StackOverflowError

Exception

其他Exception,受检查异常。

可以理解为错误,必须要开发者解决以后才能编译通过,解决的方法有两种,1:throw到上层,2,try-catch处理。

RunTimeException:运行时异常,又称不受检查异常,不受检查!不受检查!!不受检查!!!

重要的事情说三遍,因为不受检查,所以在代码中可能会有RunTimeException时Java编译检查时不会告诉你有这个异常,但是在实际运行代码时则会暴露出来,比如经典的1/0,空指针等。如果不处理也会被Java自己处理。


作者:用户7724478674266
链接:https://juejin.cn/post/6990943833458638885/
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值