sauzer90 ha scritto:
non riesco a gestire le eccezioni, ovvero, se catturo l'eccezione entro in un ciclo infinito. Come posso fare?
Questa è una questione ben nota di Scanner. Quando un nextXXX lancia InputMismatchException (perché l'input non è appropriato es. "aaa" o "12a" ad un nextInt), quel token NON viene rimosso. Resta lì in Scanner, perché potrebbe(/dovrebbe) essere magari letto in altro modo.
Semplicemente nel catch ti basta "buttare" via il token sballato facendo sullo Scanner un next() "a vuoto" (cioè senza considerare ciò che ritorna).