Java 捕获异常后代码不工作

Java 捕获异常后代码不工作,java,validation,exception,integer,try-catch,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

当用户输入的值不是整数时,我试图捕获一个异常。输入非整数时,会捕获异常,但不会返回正常状态。 我想让它做的是回到程序打开时的启动方式:

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块中将其更改为“”,但仍会抛出相同的异常),您将不断地一次又一次地获取此异常,循环将永远不会终止