2016-04-06 5 views
0

Das folgende Java-Programm kann aufgrund von Fehlern in der else-Klausel nicht kompiliert werden.NetBeans führt ein Java-Programm mit Fehlern bei der Kompilierung aus

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

}

Doch wenn in NetBeans ausführen, nachdem der Fehler informiert zu werden und auf "Run Anyway" das Programm läuft und Ausgang "PASS". Wenn die Bedingung fehlschlägt (wenn die args> 0), wird das Programm eine Runtime wirft:

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

Wie läuft NetNeans uncompilable Code? Führt es einen Interpreter/JIT-Compiler oder etwas ähnliches?

Ist dies ein neues Feature, da ich es nicht in der Vergangenheit erinnere?

+1

Vermutlich entfernt sie das Unerreichbare/uncompilable Code und ersetzt ihn durch ein 'Wurf'. –

+1

@ElliottFrisch Danke! Ich habe bestätigt, dass Sie Recht haben und ich habe Ihnen meine Antwort gutgeschrieben. Wenn Sie eine Antwort auf Ihre Antwort erhalten möchten, tun Sie dies bitte und ich lösche meine Antwort. – Jonathan

+0

Kein Problem. Und das ist ganz in Ordnung, ich habe einen WAG genommen; du hast es tatsächlich überprüft. –

Antwort

3

als @ElliottFrisch kommentiert, entfernt NetBeans das Unerreichbare/uncompilable Code und ersetzt es mit einem Wurf

Hier ist der dekompilierten Code:

/* 
* 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"); 
    } 
}