IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Problém

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
mara
Člen
Avatar
mara:29.6.2014 17:59

Prosím mohl by mě vysvětlit tento kód ?
Děkuji

public class Main {

public static void main(String[] args) {
int i = 0;
boolean valid = false;
do {
System.out.prin­tln("Zadejte cislo (v rozsahu int):");
try {
i = readNumber();
valid = true; //cislo je v poradku
} catch (InvalidInputEx­ception ex) {
System.out.prin­tln("Zadal jste neplatne cislo!");
}
} while (!valid);
System.out.prin­tln("Zadal jste cislo: " + i);
}

private static int readNumber() throws InvalidInputEx­ception {
Scanner s = new Scanner(System.in);
try {
return s.nextInt();
} catch (InputMismatchEx­ception e) {
throw new InvalidInputEx­ception(e);
}
}
}

class InvalidInputEx­ception extends Exception {

public InvalidInputEx­ception(Throwa­ble cause) {
super(cause);
}
}

Odpovědět
29.6.2014 17:59
Co na srdci, to na Facebooku
Avatar
mara
Člen
Avatar
mara:29.6.2014 18:03

Nechápu spíš této části kódu:
private static int readNumber() throws InvalidInputEx­ception {
Scanner s = new Scanner(System.in);
try {
return s.nextInt();
} catch (InputMismatchEx­ception e) {
throw new InvalidInputEx­ception(e);
}
}
}

class InvalidInputEx­ception extends Exception {

public InvalidInputEx­ception(Throwa­ble cause) {
super(cause);
}
}

Nahoru Odpovědět
29.6.2014 18:03
Co na srdci, to na Facebooku
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na mara
Jan Vargovský:29.6.2014 18:07

Načítáš vstup, dokud to není číslo. Pak ti to napíše to číslo, které jsi zadal.

Je to normální metoda, která vytvoří instanci na SCanner a načte další int, pokud to není int, tak vyhodí vyjímku. Ta třída je další typ vyjímky, kterou sis sám vytvořil(okopí­roval). Btw, na zdrojáky je tu speciální tag.

Editováno 29.6.2014 18:09
 
Nahoru Odpovědět
29.6.2014 18:07
Avatar

Člen
Avatar
:29.6.2014 18:27

Jen mimo téma, je tu tlačítko na kód

a potom budeš psát takto... zůstane ti i formátování

V řádku nad textareou, druhé zprava.

 
Nahoru Odpovědět
29.6.2014 18:27
Avatar
mara
Člen
Avatar
mara:29.6.2014 19:21

Děkuji moc a proč tam musí být tady tohle a to

super(cause);

??

class InvalidInputException extends Exception {

public InvalidInputException(Throwable cause) {
super(cause);
}
}
Nahoru Odpovědět
29.6.2014 19:21
Co na srdci, to na Facebooku
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na mara
Jan Vargovský:29.6.2014 19:22

Je to tuším volání konstruktoru z té třídy Exception.

 
Nahoru Odpovědět
29.6.2014 19:22
Avatar
mara
Člen
Avatar
mara:29.6.2014 19:26

dobře díky moc :)

Nahoru Odpovědět
29.6.2014 19:26
Co na srdci, to na Facebooku
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.