2016-04-06 24 views
0

次のJavaプログラムは、else節のエラーのためにコンパイルできません。それでもNetBeansはコンパイル時エラーのあるJavaプログラムを実行します

public class Temp1 { 
public static void main(String[] args) { 
    if (args.length == 0) 
    { 
     System.out.println("PASS"); 
    } 
    else{ 
     COMPILEERROR 
    } 
} 

}

、エラーが通知され、プログラムが実行され、出力「PASS」を「とにかく実行」をクリックした後に、NetBeansの中で実行します。条件が失敗した場合(引数> 0の場合)、プログラムはのRuntimeExceptionをスロー:

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - not a statement 

はどのようNetNeansは、互換性のないコードを実行するのですか?それはインタプリタ/ JITコンパイラなどを実行していますか?

私はこれを過去に思い出していないので、これは新しい機能ですか?

+1

おそらくそれが到達不能/互換性のないコードを削除して、それを置き換えます「スロー」。 –

+1

@ElliottFrischありがとう!私はあなたが正しいことを確認し、私は私の答えであなたを信じました。あなたの答えにクレジットを与えたいのであれば、私の答えを削除します。 – Jonathan

+0

問題ありません。そしてそれはかなり大丈夫です、私はWAGをとりました。あなたは実際にチェックしました。 –

答えて

3

@ElliottFrischがコメントとして、NetBeansは到達不能/互換性のないコードを削除し、スローここ

に置き換えて逆コンパイルコードです:

/* 
* Decompiled with CFR 0_114. 
*/ 
package temp1; 

import java.io.PrintStream; 

public class Temp1 { 
    public static void main(String[] args) { 
     if (args.length != 0) { 
      throw new RuntimeException("Uncompilable source code - not a statement"); 
     } 
     System.out.println("PASS"); 
    } 
} 
関連する問題