由于else子句中的错误,以下Java程序无法编译。
public class Temp1 {
public static void main(String[] args) {
if (args.length == 0)
{
System.out.println("PASS");
}
else{
COMPILEERROR
}
}
}
然而,当在NetBeans中运行时,在收到错误通知并单击" Run Anyway"程序运行并输出" PASS"。当条件失败时(当args> 0时),程序抛出RuntimeException:
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - not a statement
NetNeans如何运行无法编译的代码?它是运行解释器/ JIT编译器还是那样的?
这是一个新功能,因为我过去不记得它吗?
答案 0 :(得分:3)
以下是反编译代码:
/*
* 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");
}
}