• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Index 0 out of bounds for length 0 problem z kodem Java

VPS Starter Arubacloud
0 głosów
1,908 wizyt
pytanie zadane 25 czerwca 2020 w Java przez Paweł123 Nałogowiec (33,500 p.)
edycja 25 czerwca 2020 przez Paweł123

Witam
Ucze się Javy i mam problem z kodem.
Przerabiam książkę Sierra K. - Java. Rusz głową! - Wydanie 2 i podany ponieżej kod nie działa. Kod został skopiowany z przykładowaych kodów.

Wyskakuje komunikat:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0

    at ExTester.main(ExTester.java:6)

Kod, który powinien działać.

class MojeEx extends Exception { }

public class ExTester {

    public static void main(String[] args) {
        String test = args[0];
        try {
            System.out.print("p");
            zaryzykuj(test);
            System.out.print("a");
        } catch (MojeEx e) {
            System.out.print("a");
        } finally {
            System.out.print("n");
        }
        System.out.print("a");
    }

    static void zaryzykuj(String t) throws MojeEx {
        System.out.print("i");

        if ("tak".equals(t)) {
            throw new MojeEx();
        }
        System.out.print("j");
    }
}

Czy ktos wie w czym jest problem?

Wynik tego kodu powinien być taki:

2 odpowiedzi

0 głosów
odpowiedź 25 czerwca 2020 przez Aisekai Nałogowiec (42,190 p.)
Pewnie nie podajesz mu nic na wejściu do programu (args.length==0). Wtedy args rzeczywiście ma rozmiar 0, więc nie ma elementu o indeksie 0. Odwołując się do elementu o indeksie 0, długość tablicy musi być większa od 0.
komentarz 25 czerwca 2020 przez Paweł123 Nałogowiec (33,500 p.)
To co mam zrobić, żeby zadziałało?
komentarz 25 czerwca 2020 przez Aisekai Nałogowiec (42,190 p.)

Jeżeli uruchamiasz program za pomocą cmd, to możesz podać argumenty podczas uruchomienia ( https://www.learnjavaonline.org/en/Compiling_and_Running_with_Arguments )

Natomiast, raczej bym zrezygnował z tego i zwyczajnie Skanerem wewnątrz programu bym wczytał jakąś wartość.

 

Edit: Jak kompiliujesz i jak uruchamiasz program?

komentarz 26 czerwca 2020 przez Paweł123 Nałogowiec (33,500 p.)
Korzystam ze środowiska IntelliJ IDEA
komentarz 26 czerwca 2020 przez Aisekai Nałogowiec (42,190 p.)
No to jeżeli korzystasz z Intellij to prawdopodobnie nie podajesz do programu argumentów które są zawarte w tablicy args. Albo w Edit Configurations je podaj, albo zmień to na Scanner zamiast args[0].
0 głosów
odpowiedź 25 czerwca 2020 przez mibdbz Gaduła (4,300 p.)
Tablica args jest pusta. Nic w niej nie ma. Nigdzie nic do niej nie wkładasz. Nawet jej nie inicjalizujesz. Próbujesz się do niej odwołać i wpisać to co w niej jest (choć nie ma nic) do Stringa test.

Odwołując się do zerowego indexu tablicy (args[0]), wyrzucany jest wyjątek, który mówi że przekroczyłeś wielkość tablicy. Ponieważ nic nie zawiera nie możesz się odnieść do żadnego miejsca bo żadne miejsce nie istnieje.

Możesz wcześniej wpisać coś do zerowego indexu tablicy poprzez :

https://javastart.pl/baza-wiedzy/java-podstawy-jezyka/tablice-jednowymiarowe

Podobne pytania

0 głosów
1 odpowiedź 890 wizyt
pytanie zadane 6 czerwca 2019 w Python przez Ventre90 Obywatel (1,170 p.)
0 głosów
1 odpowiedź 235 wizyt
+1 głos
1 odpowiedź 336 wizyt
pytanie zadane 3 grudnia 2021 w C# przez chrystian Gaduła (4,780 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...