Ho una classe nella quale devo inserire utilizzando apposite textfield dei valori (nome, cognome,telefono,etc).
Alcuni campi però, come ad esempio quello telefonico necessitano di essere controllati mediante il blocco try&catch per verificare che ad esempio insieme al numero non sia stato immessa un lettera.
Ho quindi creato un metodo apposito, controlloCampo, nel quale vado ad effettuare tutti i controlli:
La compilazione va a buon fine, e il programma si esegue senza problemi, ma se per caso provo ad inserire nel campo del telefono una lettera al posto di un numero si verifica un errore di tipo NumberFormatException.codice:public boolean controlloCampo() { char[] nomeNum = campoNome.getText().toCharArray(); char[] cognomeNum = campoCognome.getText().toCharArray(); char[] telefonoNum = campoTelefono.getText().toCharArray(); . . . if ( (campoNome.getText().equals("")) || ...) { JOptionPane.showMessageDialog(null, "Uno o più campi sono vuoti", "Si è verificato un errore", JOptionPane.ERROR_MESSAGE); return false; } else if (Integer.parseInt(campoCivico.getText()) <= 0) { JOptionPane.showMessageDialog(null, "Il valore inserito nel campo ' N° civico' non è valido", "Si è verificato un errore", JOptionPane.ERROR_MESSAGE); return false; } // ometto di scrivere tutta una serie di else if // il blocco try&catch è il problema try { Long.parseLong(campoTelefono.getText()); } catch (NumberFormatException n) { JOptionPane.showMessageDialog(null, "Il campo 'telefono' contiene un valore non valido", "Si è verificato un errore", JOptionPane.ERROR_MESSAGE); return false; } return true; }
Che posso fare??

Rispondi quotando
