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

Wyjątki w pętli

Aruba Cloud - Virtual Private Server VPS
0 głosów
558 wizyt
pytanie zadane 9 lipca 2019 w Java przez magicznyukf Początkujący (260 p.)

Witam, piszę sobie taki dydaktyczny programik. Chciałbym, żeby np. po wpisaniu litery zamiast cyfry(wyjątek InputMismatchException) program nadal działał (Ciagle pytał o następne liczby). Jak to zrobic?

 

public class Main {

    public static void main(String[] args) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        Scanner scanner = new Scanner(System.in);

        double num1, num2;
        boolean koniec = false;

        do {
            try {
                System.out.println("\nPodaj liczbe: ");
                num1 = scanner.nextDouble();
                System.out.println("Podaj dzielnik: ");
                num2 = scanner.nextDouble();
                System.out.println("\nWynik: " + num1 / num2);
            } catch (ArithmeticException e) {
                System.out.println("Blad arytmetyczny: " + e);
            } catch (InputMismatchException e) {
                System.out.println("To nie jest liczba: " + e);

            } finally {
                System.out.println("Koniec");
            }
        } while (koniec == false);

    }
}

1 odpowiedź

+1 głos
odpowiedź 9 lipca 2019 przez Paweł Nąckiewicz Nałogowiec (48,990 p.)

W scanerze przechowuje się dawny znak (lub ciąg znaków) i to chyba powoduje błąd. Dodaj to w catchu zaraz po złapaniu Twojego wyjątku i powinno działać

catch (InputMismatchException e) {
                System.out.println("To nie jest liczba: " + e);
                scanner.nextLine();
}

 

komentarz 9 lipca 2019 przez magicznyukf Początkujący (260 p.)
Działa. Dzięki

Podobne pytania

+1 głos
3 odpowiedzi 1,303 wizyt
pytanie zadane 27 sierpnia 2017 w Java przez Patryk Moros Początkujący (470 p.)
0 głosów
2 odpowiedzi 561 wizyt
+1 głos
0 odpowiedzi 115 wizyt
pytanie zadane 6 września 2020 w Algorytmy przez Damian2102 Nowicjusz (150 p.)

93,281 zapytań

142,285 odpowiedzi

322,304 komentarzy

62,604 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...