2017-01-26 10 views
-1
での出力

私は、コンパイラが出力しない、例外続くコードの数行を実行するために起こっていると例外をスローしたとき確実に伝えることができるようにしたいと思います。さらに私のポイントを説明するために例外とJava

は、次のコードを考えてみます。

public class OverAndOver { 
    static String s = ""; 
    public static void main(String[] args) { 
    try { 
     s += "1"; 
     throw new Exception(); 
    } catch (Exception e) { s += "2"; 
    } finally { s += "3"; doStuff(); s += "4"; 
    } 
    System.out.println(s); 
    } 
    static void doStuff() { int x = 0; int y = 7/x; } 
} 

doStuff()メソッドでチラッとあなたはコンパイラがゼロ除算例外をスローするために起こっている知っています。

ここで私の質問です(と私の混乱の原因):なぜコンパイラは "123"の後に例外が表示されませんでしたか?そして最も重要なのは、コンパイラが例外をスローする前にいくつかのコード行を実行するとき、そして出力なしですぐに例外をスローするときにどうすればいいのかを確かめることができますか?

+2

サイドポイント:おそらく実行時環境を意味し、コンパイラはコードを実行しません。 –

+1

私の修正をありがとう。 +1 –

答えて