【JAVA基础】try-catch-finally执行完finally中的代码之后,后面的代码还会不会继续执行 ?

背景:今天在开发过程中遇到了一个问题,再某个成员方法中,try-catch-finally后面还想执行一些内容,但是略微模糊,特此梳理记录,希望能帮到大家

在Java等编程语言中,try-catch-finally结构用于处理异常和确保某些代码无论如何都会执行。对于你的问题,finally块执行完之后,是否继续执行后面的代码,取决于几个因素:

1.如果在try或catch块中没有异常发生:

  • try块中的代码正常执行。
  • catch块不会被执行。
  • finally块随后被执行。
  • 执行完finally块后,程序会继续执行finally块之后的代码。
    2.如果在try块中发生了异常,并且该异常在catch块中被捕获:
  • try块中的代码在遇到异常的地方停止执行。
  • 相应的catch块被执行。
  • finally块随后被执行。
  • 执行完finally块后,程序会继续执行finally块之后的代码。
    3.如果在try块中发生了异常,并且该异常没有在catch块中被捕获(或者没有catch块):
  • try块中的代码在遇到异常的地方停止执行。
  • catch块(如果存在)不会被执行,因为异常没有被捕获。
  • finally块随后被执行。
  • 执行完finally块后,如果异常没有被处理(即没有匹配的catch块或者没有向上抛出),那么程序会终止,finally块之后的代码不会被执行。
    4.如果在finally块中抛出了新的异常:
  • 无论之前try或catch块中发生了什么,finally块都会被执行。
  • 如果finally块中抛出了新的异常,那么该异常会覆盖之前try或catch块中可能抛出的异常(如果有的话)。
  • 程序会终止,finally块之后的代码不会被执行,而是会跳转到调用堆栈中最近的异常处理代码(如果有的话)。
    综上所述,如果try-catch-finally结构中没有异常导致程序终止(即所有异常都被捕获并处理),那么finally块之后的代码会继续执行。如果- finally块中抛出了新的异常,或者之前的异常没有被捕获并处理,那么程序会终止,finally块之后的代码不会被执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执键行天涯

码你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值