2016-07-17 8 views
-11

Wenn ich diesen Code ausführen Zugriff:ArrayIndexOutOfBoundsException wenn args

public class Calc2 { 
    public static void main(String[] args) { 
     double result; 
     result = Double.parseDouble(args[0]) + Double.parseDouble(args[1]); 
     System.out.print(result); 
    } 
} 

ich dieses:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 
     at Calc2.main(Calc2.java:4) 
+2

Post ** der Fehler **, kein schlecht abgeschnittener Screenshot des Fehlers. –

+0

Siehe auch: http://StackOverflow.com/Questions/8756377/How-to-pass-command-line-arguments-to-main-method-dynamic –

+0

Hier ist das vollständige Bild –

Antwort

0

Sie erhalten diese Fehlermeldung, da die Länge des args Array kürzer ist, dass die Position Sie sind tring für den Zugriff. Wie die anderen Antworten erwähnt haben, senden Sie möglicherweise nicht die Befehlszeilenargumente, oder Sie senden nur eine, und wenn Sie versuchen, auf die zweite zuzugreifen (args[1]), erhalten Sie eine Array-Index-Out-of-Bounds-Ausnahme.

Das Beste, was Sie tun können, ist die Länge des Arrays zu überprüfen, bevor Sie auf die Werte zugreifen, oder sogar innerhalb einer for Anweisung zu iterieren, bis die Länge des Arrays erreicht ist.

Verwenden Sie diesen Befehl die Werte drucken:

for(int i=0; i< arr.length;i++) 
{ 
    System.out.print(Double.parseDouble(args[i])); 
} 

Und wenn es nicht anythng nicht zeigen, weil Sie nicht die Argumente für das Programm sind vorbei.

+0

wie es zu lösen dann –

+0

@omarwael Ich habe meine Antwort aktualisiert, können Sie es überprüfen – meJustAndrew

+0

iam Entschuldigung, weil iam Beginnerso, wo, aber es –

Verwandte Themen