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(); 
    } 

}