[Java] Catturare eccezione e non interrompere il ciclo

Pubblicità

Loris89

Nuovo Utente
Messaggi
34
Reazioni
0
Punteggio
26
Salve. Devo richiedere un input numerico all'utente, e per farlo faccio così:

Codice:
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        int scelta = 0;
        
        do {
            try {
                System.out.print("\nInserisci 1 per stampare una riga, 2 per stampare una colonna (0 per terminare): ");
                String line = bufferedReader.readLine();
                scelta = Integer.parseInt(line);
                elaboraScelta(scelta,matrice);
            }catch(NumberFormatException e) {
                System.out.println("\nInserimento errato, ritenta...");
            }catch(IOException e) {
                System.out.println("\nInserimento errato, ritenta...");
            }
        }while(scelta != 0);

Se l'utente inserisce delle stringhe il programma si ferma, ma non dovrebbe assolutamente fermarsi. Ero staconvinto che questa soluzione ignorasse l'eccezione e continuasse a chiedere l'input.. dove sbaglio?
 
Difatti non ci sono errori nel tuo codice, il programma non dovrebbe fermarsi. Ho provato a farlo girare ed è andato una meraviglia.
Probabilmente si ferma per colpa di qualcos'altro, magari in quel metodo elaboraScelta, che ovviamente io ho dovuto togliere dal mio codice di test.

Prova ad aggiungere un e.printStackTrace() ai tuoi catch e scrivi qui il messaggio d'errore che ti salta fuori quando il programma va in eccezione :)
 
Pubblicità
Pubblicità
Indietro
Top