Fehlermeldung bei Java .?
Bei folgendem Code:
public class Kreisberechnung2 {
public static void main(String[] args) {
double radius = Double.parseDouble(args[0]);
double umfang = 2.0 * 3.1415926 * radius;
double inhalt = 3.1415926 * radius * radius;
System.out.print("Umfang: ");
System.out.println(umfang);
System.out.print("Flaeche: ");
System.out.println(inhalt);
}
}
Kommt folgende Fehlermeldung:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Kreisberechnung2.main(Kreisberechnung2.java:7)
Bin noch anfänger in Java und hoffe, dass es mir jemand leicht verständlich erklären kann ^^;.
Danke im Vorraus.
4 Antworten
1. Problem liegt bei "Double.parseDouble(args[0]);
Das bedeutet, dass args[0] nicht zugewiesen wurde.
Benutze lieber eine normale Zahl oder lies eine Zahl mit dem Scanner oder per TextField auf einem JFrame ein.
Tipp:
Statt die Zahl Pi "manuell" zu schreiben, verwenden lieber Math.PI , das ist die offizielle Mathe-Bibliothek von Java.
alex
Die Fehlermeldung bedeutet, dass es den angegebenen Index nicht in dem Array gibt. Da hier als einziges Array das args verwendet wird und du da versuchst, aus dem Index 0 zu lesen, gehe ich mal davon aus, dass keine Argumente übergeben werden und das Array daher leer ist.
Schreib testweise beim Radius einfach mal einen festen Wert rein.
Das Array args beinhaltet die Argumente, die du an das Programm beim Aufruf übergibst. Wenn kein Argument vorhanden, dann kommt es zu einer Exception.
Daher solltest Du zuvor die Länge des Arrays überprüfen um zu sehen, ob es überhaupt ein Argument gibt.
double radius = Double.parseDouble(args[0]);
Da wird das Problem liegen. Du übergibst der main-Methode ein Array... also ein Feld von Werten. Dieses Feld hat eine bestimmte Länge. Wenn du dein Programm startest musst du ihm Parameter mitgeben, damit in dem Feld "args" auch wirklich was drin steht. Da du das nicht machst, greifst du mit args[0] auf den ersten Eintrag im Feld zurück, was eine ArrrayOutOfBoundsException wirft... also eine Exception, die dann geworfen wird, wenn du auf einen Index zugreifen willst, der gar nicht existiert, weil dein Feld nicht lang genug ist.
Da du mit args[0] auf das erste Element zugreifen willst, kann man daraus folgern, dass args einfach leer ist und du beim Programmstart nichts übergeben hast.