Przykład z "Rusz głową. Java"

Przykład z "Rusz głową. Java"
QU
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 4 lata
  • Postów:1
0

class MojEx extends Exception{}
public class ExTester {

public static void main(String [] args) {
    String test = args[0];
    try {
        System.out.println("p");
        zaryzykuj(test);
        System.out.println("a");
    }catch (MojEx e) {
        System.out.println("a");
    }finally {
        System.out.println("n");
    }
    System.out.println("a");
}
static void zaryzykuj(String t) throws MojEx {
    System.out.println("i");
    if ("tak".equals(t)){
        throw new MojEx();
    }
    System.out.println("j");
}

}

Pytanie 1: Co tu jest nie tak? Powino sie kompilować a wywala:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at ExTester.main(ExTester.java:6)
Pytanie 2: Co oznacza : "String test = args[0];" w powyższym kodzie?

S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
1

Ale przecież to oznacza że się skompilowało i rzuciło wyjątek :D


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
PU
  • Rejestracja:ponad 9 lat
  • Ostatnio:5 miesięcy
  • Postów:59
3
  1. Kompiluje się, błąd który otrzymujesz to wynik uruchomienia programu
  2. To jest odczyt argumentu przekazanego do programu, ty nie przekazujesz żadnego więc tablica jest pusta => nie zawiera elementu, który chcesz odczytać -> leci wyjątek, który Cię o tym informuje
    Jakiego IDE używasz? Intellij? Jak tak to: https://www.google.com/search?q=how+to+pass+program+arguments+in+intellij&oq=how+to+pass+program+arguments+in+intellij&aqs=chrome..69i57j0l4.4239j0j7&sourceid=chrome&ie=UTF-8
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0

W pierwszej linii (wewnątrz main) dodaj:

Kopiuj
if (args.length < 1) throw new Exception("Invalid data!!! RTFM!");
edytowany 2x, ostatnio: vpiotr
K5
Wróci wtedy tutaj i napisze że dostał kolejny exception ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.