Java在`finally`块之后不打印消息

时间:2018-03-30 12:35:47

标签: java

这个问题与Java中的finally块有关。这里的“其余代码”不是打印,而是在finally块之后。

但是当没有异常时,它会打印finally块之后的任何内容。

class TestFinallyBlock1 {  
    public static void main(String args[]) {  
        try {  
            int data=25/0;  
            System.out.println(data);  
        }  
        catch(NullPointerException e) {
           System.out.println(e);
        }  
        finally {
           System.out.println("finally block is always executed");
        }  

        System.out.println("rest of the code...");  
    }  
}  

1 个答案:

答案 0 :(得分:5)

因为你没有捕获java.lang.ArithmeticException而且代码在那时终止。

试试这个:

class TestFinallyBlock1 {
    public static void main(String args[]) {
        try {
            int data = 25 / 0;
            System.out.println(data);
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            System.out.println("finally block is always executed");
        }
        System.out.println("rest of the code...");
    }
}