问答详情
源自:1-2 Java中使用try..catch..finally实现异常处理

关于异常处理finally的问题

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

提问者:彼时年少0 2017-01-16 17:23

个回答

  • 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块中打开的物理资源。

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

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