ArrayIndexOutOfBoundsException - wyłuskanie wartości, dla której wywaliło wyjątek

0

Mam pytanie w jaki sposób z wyjątku złapanego przez:

catch (ArrayIndexOutOfBoundsException e) {
e.toString()
}

wyciągnąć wartość, która powoduje wyjątek? Nie mogę użyć size()/length. Mam taki wyjątek:

java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3

i chcę do zmiennej wrzucić tą (w tym wypadku) 3.

0
Integer.parseInt(e.getMessage());

A po Ci to?

0

Zadanie na ćwiczenia z Javy :(

bogdans napisał(a):
Integer.parseInt(e.getMessage());

A po Ci to?

Ale ten kod chyba jednak nie działa

0

Może nieumiejętnie wybierasz wersję jre. Dopisz do programu

System.out.println(System.getProperty("java.version"));

to się dowiesz. która wersja się uruchamia.
Spróbuj tak:

int badIndex = 0;
\\w catch(...)
String[] items = e.getMessage().split(" ");
if(items.length == 1)
{
    badIndex = Integer.parseInt(items[0]);
}
else
{
    badIndex = Integer.parseInt(items[1]);
}
0

Faktycznie coś Eclipse się buntował i nie uruchamiał dla Javy 8 ale już wszystko działa także dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1