10.finally块
马克-to-win:finally块儿是怎么工作的?有什么意义?finally关键字创建一个代码块。没有try,finally块儿不能单独存在。该代码块在一个try/catch块完成之后另一个try/catch出现之前执行。马克-to-win:finally一定会执行,即使 1)异常没有发生 2)根本没有写catch块儿 3)没有与该异常相匹配的catch子句。4)try代码块中包含有break、continue、return或者throw语句(或直接崩溃或发生OutOfMemoryError)。
为什么抛出异常或发生错误,finally块儿还是能运行呢?想象一下程序执行的过程就明白了。jvm一句一句的向下执行,当它发现数组过界时,它就先执行finally块儿,然后再执行打印报错现在正在发生数组过界。注意现在是你的程序出现问题,jvm一点问题都没有,所以它还能正常打印报错。(见下面的例子)
更多请见:https://blog.youkuaiyun.com/qq_44639795/article/details/103106611
本文详细解释了Java中finally块的工作原理及其重要性。无论是否发生异常,finally块都会被执行,包括在try块中使用了return、throw等语句的情况。文章通过实例说明了JVM如何处理finally块,并给出了进一步阅读的链接。
5万+

被折叠的 条评论
为什么被折叠?



