捕获异常后代码无法正常工作

时间:2014-11-16 14:00:58

标签: java validation exception integer try-catch

当用户输入的值不是整数时,我正在尝试捕获异常。输入非整数时,会捕获异常,但不会恢复正常。 我想要它做的是回到程序打开时它是如何开始的:

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);
}

1 个答案:

答案 0 :(得分:2)

你应该摆脱你的while循环。如果抛出异常,请抓住它,但不要继续循环,因为只要quantityField.getText()没有变化(实际上你将其更改为""在catch块,但仍然会抛出相同的异常),你会一遍又一遍地得到这个异常,循环永远不会终止。