• 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

Object Storage Arubacloud
0 głosów
1,931 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ź 899 wizyt
pytanie zadane 6 czerwca 2019 w Python przez Ventre90 Obywatel (1,170 p.)
0 głosów
1 odpowiedź 253 wizyt
+1 głos
1 odpowiedź 351 wizyt
pytanie zadane 3 grudnia 2021 w C# przez chrystian Gaduła (4,780 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...