当用户输入的值不是整数时,我试图捕获异常。输入非整数时,将捕获异常,但不会恢复正常。
我想要它做的是回到程序打开时的启动方式:
private void calculateActionPerformed(java.awt.event.ActionEvent evt)
{
int quantityOfBoxes;
int width, length, height;
boolean excep;
do {
excep = false;
try {
quantityOfBoxes = Integer.parseInt(quantityField.getText());
} catch (Exception exRef) {
System.err.println(exRef);
JOptionPane.showMessageDialog(null,
"Values must be in integer",
"Error",
JOptionPane.WARNING_MESSAGE);
excep = true;
}
quantityField.setText("");
} while (excep);
}
最佳答案
您应该摆脱while循环。如果引发了异常,请捕获该异常,但不要继续循环,因为只要quantityField.getText()
不变(实际上,您在catch块中将其更改为“”,但这仍然会引发相同的异常) ,您将一遍又一遍地获取此异常,并且循环永远不会终止。