java.lang.arrayindexoutofboundsexception: 0

Ik leer Java met behulp van een boek. Er is deze oefening die ik niet goed kan bereiken. Het voegt twee doubles toe met behulp van de Java-klasse Double. Wanneer ik deze code in Eclipse probeer uit te voeren, geeft het mij de fout in de titel.

public static void main(String[] args) {
    Double d1 = Double.valueOf(args[0]);
    Double d2 = Double.valueOf(args[1]);
    double result = d1.doubleValue() + d2.doubleValue();
    System.out.println(args[0] + "+" + args[1] + "=" + result);
}

Antwoord 1, Autoriteit 100%

Probleem

deze ArrayIndexOutOfBoundsException: 0betekent dat de index 0geen geldige index voor uw array args[]is, die op zijn beurt dat betekent Je array is leeg.

In dit specifieke geval van een main()methode, betekent dit dat geen argument werd doorgegeven op uw programma op de opdrachtregel.

Mogelijke oplossingen

  • Als u uw programma uit de opdrachtregel uitvoert, vergeet dan niet om 2 argumenten in de opdracht te passeren.

  • Als u uw programma in Eclipse uitvoert, moet u de opdrachtregelargumenten instellen in de configuratie Run. Ga naar Run > Run configurations...en kies vervolgens de ArgumentsTAB VOOR UW RUN-configuratie en voeg enkele argumenten toe in de argumenten -programma

Merk op dat u moet aan de zaak waar niet genoeg argumenten krijgen , met zoiets aan het begin van uw hoofdmethode:

if (args.length < 2) {
    System.err.println("Not enough arguments received.");
    return;
}

Dit zou gracieus mislukken in plaats van dat je programma crasht.


Antwoord 2, autoriteit 21%

Deze code verwacht twee argumenten te krijgen wanneer deze wordt uitgevoerd (de argsarray).
Het feit dat toegang tot args[0]een java.lang.ArrayIndexOutOfBoundsExceptionveroorzaakt, betekent dat je er geen doorgeeft.

Other episodes