java中finally块儿是怎么工作的?有什么意义?

Posted mark-to-win

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中finally块儿是怎么工作的?有什么意义?相关的知识,希望对你有一定的参考价值。

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一点问题都没有,所以它还能正常打印报错。(见下面的例子)

马克-to-win: (视频下载) (全部书籍)finally有什么意义呢,在现实中?比如你开了一个流处理文件,可能没开成功,或开成功了,但后面的操作失败了,但不管你怎么样,你必须在一个地儿把它关闭,那就是finally块儿。

例: 1.10.1(try catch全齐,正常情况)-本章源码

public class Test {
    public static void main(String[] args) {
        try
        {
            int userInput=0;
            int I = 6 / userInput;
        }
        catch(Exception e)
        {
            System.out.println(e);
        }


。。。。。。。。。。。。。。。。。
详情请进:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/JavaBeginner5_web.html#finally
















以上是关于java中finally块儿是怎么工作的?有什么意义?的主要内容,如果未能解决你的问题,请参考以下文章

Java 中的 finalfinallyfinalize 有什么不同?

java中异常这种技术框架是怎么工作的?

java中的“try - catch -finally”结构中的“finally”都有哪些用途

[面试题]java中final finally finalized 的差别是什么?

java 程序无论是不是有异常都有返回值?代码怎么处理?

java 怎么更改final的值