L'ho scritto di getto e senza verificarne la correttezza. Ci sono tanti altri modi per fare la stessa cosa ed in maniera cneh più pulita, ma come idea base può andare bene:
codice:
import java.util.*;
public class GestioneEccezioni {
public static void inserisciEta() {
Scanner s = new Scanner (System.in);
int etaMarco = getEta(s, "Marco");
int etaLuca = getEta(s, "Luca");
int etaMatteo = getEta(s, "Matteo");
int etaGiovanni = getEta(s, "Giovanni");
}
private int getEta(Scanner s, String name) {
int eta = 0;
try {
System.out.println("Inserisci un valore per l'età di " + name);
int eta = s.nextInt();
} catch(InputMismatchException e) {
System.out.println("Il valore inserito deve essere un intero!");
eta = getEta(s, name);
}
return eta;
}
public static void main (String [] args) {
inserisciEta();
}
}