Re: Data Validation
BlackJackal wrote On 01/29/07 17:44,:
I am really new to programming so take it easy on me :)
Here is the code. Basically what I want it to do is whenever the user
enters in 1 2 or 3 to say good job. When the user enters 4 to quit
and anything else display an error message. This code works fine as
long as the user enters in a int if anything else is entered it
crashes. How can i fix this? Thanks
import javax.swing.*;
public class Input123
{
public static void main(String[] args)
{
String input;
int selection = 0;
while (selection != 4) {
input = JOptionPane.showInputDialog(null,"Enter in either
1, 2, 3, or 4 to quit");
selection = Integer.parseInt(input);
if(selection == 1 || selection == 2 || selection == 3) {
JOptionPane.showMessageDialog(null,"Good Job");
}
else if(selection == 4){
System.exit(0);
}
else {
JOptionPane.showMessageDialog(null,"You have entered an
invalid character, Please try again.");
}
}
System.exit(0);
}
}
If the user enters junk, Integer.parseInt() will throw
NumberFormatException. If you want to keep going after the
exception is thrown, you must catch it and deal with it.
Here's one way:
while (true) { // selection != 4 is useless
input = ...;
try {
selection = Integer.parseInt(input);
}
catch (NumberFormatException ex) {
selection = 0;
}
if (... as above ...)
}
--
Eric.Sosman@sun.com