如果不满足验证标准,则在Java中停止/重置函数

时间:2013-10-14 16:00:50

标签: java function validation

我在下面使用此函数来检查在文本框中输入的值,如果它在try catch标准下有效,则该函数应通过布尔变量返回True。该程序已设置,因此只有在我的所有输入都返回为OK或为真时才会进行最终计算。

我需要正常工作的是try的返回,如果数字无效,则函数应该停止并让用户再次尝试,我正在考虑类似于VB的Exit Sub。我的搜索已经转向使用下面的返回,但这只会导致错误,因为编译器认为我正在尝试返回函数结果。

这个功能还有一点点,但我把它剪掉了,因为它无关紧要;它几乎只是bGarage = true;return bGarage;

public boolean fnGarageLevel() {//Beginning of Garage Validation Function

    int nGarage;
    boolean bGarage;

    try {//Garage Number Validation Try

        nGarage = Integer.parseInt(tfGarage.getText());

     if (nGarage != 1 || nGarage != 2 || nGarage != 3 || nGarage != 4) {

            JOptionPane.showMessageDialog( null,
                     "Enter a valid Garage Level, 1, 2, 3 or 4",
                     "Error",
                     JOptionPane.ERROR_MESSAGE);

                     tfGarage.setText("");
                     tfGarage.grabFocus();
                     return;

            }//End of Error Message

    }//End of try

    catch (NumberFormatException nfe) {//Beginning of Catch

        JOptionPane.showMessageDialog(null,
                        "Value Entered for Garage is not a Number",
                        "Error",
                        JOptionPane.ERROR_MESSAGE);

        tfGarage.setText("");
        tfGarage.grabFocus();

    }//End of Catch for Garage field

    bGarage = true;
    return bGarage;

}//End of Garage Function

1 个答案:

答案 0 :(得分:3)

try部分成功完成运行(即没有捕获任何异常)时,控件直接到catch部分的末尾或(如果存在)进入部分{{ 1}}。在这种情况下,当finally结束时,控件会跳转到bGarage=true句子。删除try语句,没有必要。