在try catch中,try catch之后的代码是一定要执行的,而try catch finally中,为什么要写finally呢?直接将finally中的代码写在异常处理块之后,不是一样会执行吗?
因为在try块中执行到a=5/0时就被catch块捕获,并没有执行到return,程序一路执行下去感觉并没有区别。假如你在catch块中最后加入return,你会发现用finally的依旧执行,而直接写的会报错,提示无法执行。
通常情况下,一旦方法里执行到return语句的地方,程序立即结束该方法。因为finally块总会被执行,不管try块中是否出现异常,不管哪个catch块被执行,也不管try和catch块中执行了return语句。从而保证一定能回收try块中打开的物理资源。
如果没有异常就不会执行catch块的内容