当最后执行?

这个问题在这里已经有了答案:

  • 最终总是在Java中执行? 50个答案

  • The finally block always executes when the try block exits (单击) The finally block always executes when the try block exits


    如果使用finally块,则放在try块和它后面的catch块之后。 finally块包含将运行的代码,无论是否在try块中引发异常。 一般的语法如下所示:

    public void someMethod{
       Try {
       // some code
       }
    
       Catch(Exception x) {
       // some code
       }
    
       Catch(ExceptionClass y) {
       // some code
       }
    
       Finally{
       //this code will be executed whether or not an exception 
       //is thrown or caught
       }
    }
    

    这里有四种潜在的情况:

  • try块运行到最后,并且不会抛出异常。 在这种情况下,finally块将在try块后执行。

  • try块中引发了一个异常,然后将其捕获到其中一个catch块中。 在这种情况下,finally块将在catch块执行后立即执行。

  • 在try块中抛出一个异常,并且在该方法中没有可以捕获异常的匹配catch块。 在这种情况下,对该方法的调用将结束,并将异常对象抛出到封闭方法 - 就像try-catch-finally块驻留的方法一样。 但是,在方法结束之前,finally块会被执行。

  • 在try块运行完成之前,它返回到调用该方法的任何地方。 但是,在它返回到调用方法之前,finally块中的代码仍然执行。 所以,请记住finally块中的代码仍然会被执行,即使try块中有某个返回语句。

  • 更新:无论try或catch块发生了什么(失败,返回,异常,完成等),最终都会被执行。


    是的,最后总是执行。 除了例外和没有例外。

    这是确保代码的一部分始终执行的方式。

    例如,用来处理对象,关闭已打开的服务器连接和那种东西。

    从oracle检查这个链接:

    http://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html

    链接地址: http://www.djcxy.com/p/73697.html

    上一篇: When finally is executed?

    下一篇: java: try finally blocks execution