0

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

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

这个功能还有一点点,但我把它删掉了,因为它无关紧要;它几乎只是bGarage = true;and 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
4

1 回答 1

3

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

于 2013-10-14T16:24:27.523 回答