java try_java的try、catch、finally

在前面我写了一篇《java如何通过异常信息定位问题原因》,可以帮助大家通过异常定位问题所在。

不过我们在大部分的时候是不希望因为异常中断我们的业务流程。所以需要对可能发生的异常做一些处理,让业务可以不被中断,继续做处理,或者给出一些更为友好的响应消息。

这个时候就是java中的try、catch、finally大展身手的时候了。

说到try、catch、finally,大家看看下面这段代码,最后执行输出的结果应该是什么呢?

b6a079932e76e383f9f1b349683f4363.png

带着这个问题,我们往下看看吧。

01try

try是负责管理正常的业务逻辑的,一般是要把可能发生异常的业务逻辑代码包装在try对应的大括号包含的代码块中。

所以,try是一个一线工人。具体完成指定的工作。

02catch

catch,百度翻译的结果是“接住; 截住; 拦住”。catch的作用就是当try块中的代码抛出异常时,而这个异常又正好是自己负责的,那这个catch块就开始工作了。

所以,catch是流水线质检工人,只负责自己检验的那部分工作。

03finally

finally,是终于,最终的意思。就是不管try、catch做了什么事情,最后都要执行finally的内容。

所以,finally是这家企业的老板,是最后进行拍板定论的。

bfb4eeffb6fa01a041082d807b7d517b.png

看了上面说的try、catch、finally他们三个各自的分工后,差不多应该可以分析出文章开头那段代码运行的结果了吧。

对了,运行的结果是输出“finally”

因为finally老板最终说了,按照我return的来。

那如果老板finally没有return呢。大家可以是试试把刚才那段代码finally中的return注释掉在运行。

是的,这个时候输出的就是“catch”了。

因为try块一线工人处理时抛出了异常,而这个异常又正好是这个catch流水线上值守的质检工人负责的,所以就按照这个质检工人提供的结论(return)。

04多个catch块

前面一直在说catch是流水线质检工人,可是代码上只有一个质检工人啊(catch)。

刚才是一个比较简单的企业,只安排了一个质检工人。下面看看有多个质检工人的流水线。

其中每个catch后面跟的异常类型,就是这个质检工人负责的异常类型。这个质检工人只负责try块抛出的这个类型的异常。

5afc0f77fbfeb0fc391bfe3794f5fa1f.png

一个try是可以有多个catch块的。

05try、catch、finally是可以省略哪部分

只要是要涉及到对异常做处理,那一线工人肯定是少不了的,不能少了干活的啊。

所以try是不可以省略的。

有的老板崇尚无为而治,就说了,不需要我进行拍板了,但是也要注重质量。

所以,如果没有finally,则必须要有catch块。

有的企业的老板则是亲力亲为,可以不要catch快,但是必须要有老板来拍板,完成最终的定论。

也就是说,try必须有。

而catch、finally二者至少要有一个。

希望通过举的这些例子,帮助大家理解、记忆如何使用java的try、catch、finally。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值