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

Wyjątki w pętli

Object Storage Arubacloud
0 głosów
515 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 985 wizyt
pytanie zadane 27 sierpnia 2017 w Java przez Patryk Moros Początkujący (470 p.)
0 głosów
2 odpowiedzi 463 wizyt
+1 głos
0 odpowiedzi 101 wizyt
pytanie zadane 6 września 2020 w Algorytmy przez Damian2102 Nowicjusz (150 p.)

92,696 zapytań

141,607 odpowiedzi

320,114 komentarzy

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

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!

...