Sprawdzanie czy wybrano poprawną opcję z menu - obsługa wyjątków

0

Witam ma dziwny problem (pierwszy raz dopiero stosuje try catch) w swojej metodzie która sprawdza czy została wybrana poprawna opcja z menu. A chodzi o to że muszę podać najpierw błędną odpowiedz i później jak podam poprawną to program wykona się dalej, ale jak najpierw podam odpowiedź która jest w przedziale to nie działa.

void Managment::setChoice() noexcept {
    while (true) {
        try {
            std::cin.clear();
            std::cin.ignore( 1000, '\n' );
            std::cin >> choice;
            if (choice < 1) {
                throw badNumberChoiceTooSmall();
                continue;
            }
            if (choice > 6) {
                throw badNumberChoiceTooBig();
                continue;
            }
            break;
        }
        catch (badNumberChoiceTooSmall &ref) {
            ref.message();
        }
        catch (badNumberChoiceTooBig &ref) {
            ref.message();
        }
    }
}
0

Co rozumiesz przez nie działa? Jeśli wczytana liczba jest w oczekiwanym zakresie to nic nie rzucasz.

0

chodzi o to że nie wiem czemu jest tak że dopóki nie podam złej odpowiedzi a później podam poprawną to program się wykonuje dalej a jak od razu podam poprawną odpowiedz to program dalej się nie wykonuje

0

ok już wykombinowałem co było nie tak wiem co było nie tak

1 użytkowników online, w tym zalogowanych: 0, gości: 1