(Nie)Zamykanie programu

(Nie)Zamykanie programu
aolo23
  • Rejestracja:ponad 7 lat
  • Ostatnio:3 miesiące
  • Postów:186
0

Mam taki problem mianowicie:
Użytkownik wprowadza dane w domyśle powinna to być liczba całkowita, no ale jeśli podaje jakiegoś śmiecia trafia to do bloku catch i tu się rodzi moje pytanie.
Jak przerwać działanie programu w catch tak by "dalej już nie szedł" by: np: nie próbował mi robić tablicy o np rozmiarze -2.Ale i tak by okienko programu nie zamykało się.Da się jakoś może zrestartować program od nowa? Czy coś w tym stylu?


Exception oznacza więcej niż tysiąc słów.
atmal
  • Rejestracja:około 8 lat
  • Ostatnio:około 17 godzin
  • Postów:913
1

Do takich rzeczy możesz stosować pętlę while/do-while która będzie się powtarzała dopóki użytkownik nie wprowadzi prawidłowych danych.


Failure of one test is a tragedy, failure of fifty is a statistic.
lukaszek016
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad rok
  • Postów:249
0

Tak jak kolega wyżej napisał. Dajesz pętle while. I tutaj dwa rozwiązania. Albo dajesz wszystko do bloku try i to co jest po tym co rzuci wyjątek się nie wykona albo do try dajesz tylko to co może rzucić wyjątek a w bloku catch piszesz continue.

aolo23
  • Rejestracja:ponad 7 lat
  • Ostatnio:3 miesiące
  • Postów:186
0

może wstawię kod

Kopiuj
public void actionPerformed(ActionEvent e) {
        Object source = e.getSource(); // zródło skąd mamy akcję

        if (source == bOK) {
            try {
                zakres = Integer.parseInt(tZakres.getText()); // pobieram z okienka Zakres jaki mamy
                if (zakres < 2) {
                    jWyniki.setText("Podano niepoprawną wartość zakresu poszukiwania liczb pierwszych!");
                    System.exit(1);
                }
            } catch (NumberFormatException ex) {
                jWyniki.setText("Nieprawidłowa dana");

                System.exit(1);

            } catch (ArrayIndexOutOfBoundsException ex2) {
                jWyniki.setText("Nie wprowadzono żadnych parametrów!");
                System.exit(1);
            }
            LiczbyPierwsze p = new LiczbyPierwsze(zakres);

            try {
                parametry = Integer.parseInt(tParametry.getText()); // pobieram z okienka Zakres jaki mamy
                if (parametry < 0) {
                    jWyniki.setText("Niepoprawna ilośc parametów!");
                    System.exit(0);
                }
            } catch (NumberFormatException ex) {
                jWyniki.setText("Nieprawny zapis parametrów");
                System.exit(0);
            }

Mam dwa okienka tekstowe Zakres i Parametry po wpisaniu obu wciska się przycisk OK i nie wiem jak wyczyścić stare pole z napisem Zakresu (tZakres) bądź parametrami (tParamery)
Próbowałem tutaj while wrzucić while wg porad ale nie idzie im to dobrze
Może powinienem dodać słuchaczy również do tZakres oraz tParametry? Ponieważ mam tylko jednego słuchacza od bOK

Potrzeba mi poprawnego wprowadzonego zakresu ponieważ momencie gdy tworzę obiekt

Kopiuj
LiczbyPierwsze p = new LiczbyPierwsze(zakres)

tworzona jest tablica liczb pierwszych do danego przedziału którym jest zmienna zakres


Exception oznacza więcej niż tysiąc słów.
edytowany 2x, ostatnio: aolo23

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.