Jak nalegać, aby dane wejściowe użytkowników były int?

Podstawowy problem tutaj. Zacznę od pytania, czy nie odpowiadasz żadnym kodem, ponieważ prawdopodobnie mnie to jeszcze bardziej zmyli (programowanie noob). Szukam jasnego wyjaśnienia, jak rozwiązać ten problem, który mam.

Mam skaner, który odczytuje dane wejściowe od użytkownika. Użytkownik jest proszony o wprowadzenie wartości int między 1 a 150 (tylko liczby całkowite). Otrzymuję wartość w następujący sposób:

    Scanner scan = new Scanner(System.in);
    int input = scan.nextInt();

I kontynuuj z moim programem i wszystko działa dobrze.

Niestety, kod nie jest dokładnie kuloodporny, ponieważ każde wejście, które nie jest liczbą całkowitą, może go złamać (litery, symbole itp.).

Jak sprawić, by kod był bardziej solidny, w którym sprawdziłby, czy wprowadzono tylko int?

Oto wyniki, na które liczę:

Powiedzmy, że dane wejściowe były:

23 -> valid
fx -> display an error message, ask the user for input again (a while loop would do..)
7w -> error, again
3.7 -> error
$ -> error
etc

questionAnswers(7)

yourAnswerToTheQuestion