Buonasera a tutti.
Sono nuovo di Java e vorrei porvi una domanda che molto probabilmente per voi risulterà banale, ma che per me non lo è.
Sto scrivendo un metodo che chiede all'utente di inserire di volta in volta dei valori interi attraverso il metodo nextInt della classe Scanner.
Se l'utente inserisce un valore che non è un intero, ovviamente viene lanciata l'eccezione Input Mismatch. Utilizzando un blocco try catch, posso gestire facilmente questo tipo di eccezione, però non so cosa scrivere nel blocco catch in modo tale che l'esecuzione del metodo riprenda dal punto in cui si è verificato l'errore. Ora mi spiego meglio, inserendo il codice che avevo pensato.
Con questo codice, se l'utente sbaglia ad inserire ad esempio l'età di Matteo, attraverso il blocco catch stampo a video un messaggio di errore e il metodo riprende da capo la sua esecuzione, chiedendo all'utente di inserire ancora l'età di Marco e Luca, nonostante fossero stati inseriti correttamente.codice:import java.util.*; public class GestioneEccezioni { public static void inserisciEta() { try { Scanner s = new Scanner (System.in); System.out.println("Inserisci un valore per l'età di Marco"); int etaMarco = s.nextInt(); System.out.println("Inserisci un valore per l'età di Luca"); int etaLuca = s.nextInt(); System.out.println("Inserisci un valore per l'età di Matteo"); int etaMatteo = s.nextInt(); System.out.println("Inserisci un valore per l'età di Giovanni"); int etaGiovanni = s.nextInt(); } catch(InputMismatchException e) { System.out.println("Il valore inserito deve essere un intero!"); inserisciEta(); } } public static void main (String [] args) { inserisciEta(); } }
Io, vorrei che non venissero rieseguite da capo tutte le istruzioni del metodo, ma che, per rifarmi all'esempio di prima, se l'utente sbaglia ad inserire l'età di Mattero, il programma permetta all'utente di inserire un nuovo valore solamente per l'età di Matteo e poi prosegue normalmente, chiedendo di inserire eventuali valori successivi, che nel mio esempio sarebbe quello dell'età di Giovanni.
Spero di essere riuscito a spiegarmi il meglio possibile.
Ringrazio in anticipo tutti per l'attenzione e per un'eventuale risposta.