如何终止最终阻止并执行try ... catch ... finally块之外的其余代码

时间:2018-04-10 12:27:01

标签: java

{{1}}

在上面的代码中我得到了这样的输出“这是试块...... !!

但我想要输出, “这是尝试阻止...... !! ” “这是在try catch块之外...... !!

任何人都可以为这个问题提供正确的解决方案吗?我怎样才能得到我想要的输出?有人解释我吗?

4 个答案:

答案 0 :(得分:1)

如果你想在尝试成功时跳过finally块的执行,那么它只适用于你的情况。

boolean trySuccessflag = false;
         try{
            System.out.println("This is try block...!!");
             trySuccessflag = true;
        }
        catch(Exception e)
        {
            System.out.println("Exception is "+e);
        }
        finally
        {

            if(!trySuccessflag){            
                System.out.println("This is finally block");
            }
        }
        System.out.println("This is outside the try catch block...");

答案 1 :(得分:0)

您的问题已经回答here

您的问题:

首先你必须知道finally块总是被执行,要么你成功还是失败了。

其次,System.exit(0)退出系统。所以JVM。不是Try块。因此,当你打电话给你的程序时,只需终止这就是为什么不再打印它了。

解决方案:

首先,如果你不想执行Finally块,就不要写它。编写一个你不想执行的代码是没有意义的。

其次,如果你真的需要退出finally块,请使用break;而不是System.exit(0);

答案 2 :(得分:0)

我认为可能是这样......

public static void main(String[] args) {
try{
    System.out.println("This is try block...!!");
} catch(Exception e) {
    System.out.println("Exception is "+e);
}
System.out.println ("This is outside the try catch block...");

}

你的" System.exit(0);"在你的" System.out.println之前("这是在try catch块之外......")"。所以它没有用。

答案 3 :(得分:0)

删除此说明:

System.exit(0); //终止块

停止应用程序不终止finally块