【问题标题】:code not working after catching an exception捕获异常后代码不起作用
【发布时间】:2014-11-16 14:00:58
【问题描述】:

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

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

【问题讨论】:

    标签: java validation exception integer try-catch


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 2012-12-18
      • 1970-01-01
      相关资源
      最近更新 更多