关于异常处理finally的问题

来源:1-2 Java中使用try..catch..finally实现异常处理

彼时年少0

2017-01-16 17:23

在try catch中,try catch之后的代码是一定要执行的,而try catch finally中,为什么要写finally呢?直接将finally中的代码写在异常处理块之后,不是一样会执行吗?

写回答 关注

3回答

  • Hornet
    2017-01-17 17:02:31

    因为在try块中执行到a=5/0时就被catch块捕获,并没有执行到return,程序一路执行下去感觉并没有区别。假如你在catch块中最后加入return,你会发现用finally的依旧执行,而直接写的会报错,提示无法执行。


  • Hornet
    2017-01-16 17:58:25

    通常情况下,一旦方法里执行到return语句的地方,程序立即结束该方法。因为finally块总会被执行,不管try块中是否出现异常,不管哪个catch块被执行,也不管try和catch块中执行了return语句。从而保证一定能回收try块中打开的物理资源。

    彼时年少0

    您好 我的意思是 try(a=5/0 return a)catch(除数不能为0)finally(System.out.print(a=-1))和try(a=5/0 return a)catch(除数不能为0) System.out.print("a=-1")这两个输出是没区别的 为什么要用finally 直接在后面写代码就可以啊 谢谢解答

    2017-01-17 14:23:38

    共 1 条回复 >

  • 慕粉2255413019
    2017-01-16 17:53:40

    如果没有异常就不会执行catch块的内容

    彼时年少0

    是的 我不懂的地方是finally中代码的作用,我将代码直接写在try catch之后 不也是会执行的吗 那么我还写finally干嘛呢?谢谢大神解答

    2017-01-17 18:50:35

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题