2016-04-06 65 views
0

由于else子句中的错误,下列Java程序无法编译。NetBeans运行带编译时错误的Java程序

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

}

然而,当在NetBeans中运行,被通知的错误,点击后“仍然运行”程序运行和输出“PASS”。当条件不满足时(ARGS> 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"); 
    } 
}