使用try-catch-JAVA验证时执行

使用try-catch-JAVA验证时执行,java,Java,当我在输入字母和其他类型时调用此方法时,当它停止时,我很难找出如何解决此问题。我的代码有什么问题?有人能帮忙吗?提前谢谢 这是我的密码: public int selectOption(int maxRange, String sourceType) throws IOException { do { try { userInput = input.nextInt(); }//end try

当我在输入字母和其他类型时调用此方法时,当它停止时,我很难找出如何解决此问题。我的代码有什么问题?有人能帮忙吗?提前谢谢

这是我的密码:

public int selectOption(int maxRange, String sourceType) throws IOException
{
    do
    {
        try
        {
            userInput = input.nextInt();

        }//end try
        catch(Exception e)
        {
            validInput=false;               
            input.next();

        }//end catch

        if (userInput<1 || userInput>maxRange)
        {
            MovieHouse.clearScreen();
            System.out.println("Select from the options only!");
            loadHeader();

            if(sourceType.equals("main"))
                MovieHouse.homeMenu();
            else if(sourceType.equals("movie menu"))
                loadMovieMenu();

        }//end if

    }while(userInput<1 || userInput>maxRange || validInput==false);

    return userInput;

}//end selectOption
public int-selectOption(int-maxRange,String-sourceType)引发IOException
{
做
{
尝试
{
userInput=input.nextInt();
}//结束尝试
捕获(例外e)
{
validInput=假;
input.next();
}//端接
if(userInputmaxRange)
{
MovieHouse.clearScreen();
System.out.println(“仅从选项中选择!”);
loadHeader();
if(sourceType.equals(“main”))
MovieHouse.homeMenu();
else if(sourceType.equals(“电影菜单”))
loadMovieMenu();
}//如果结束
}while(userInputmaxRange | | validInput==false);
返回用户输入;
}//结束选择选项
“输入字母”-这是否意味着程序通常采用数字,而您提供字符作为输入


不清楚您的问题是什么。

您能解释一下您想要实现的目标吗?输入的含义是什么。下一步();为什么要在catch中执行input.next()?你说的停止到底是什么意思?我们需要更多的信息来了解你想要实现的目标和错误。对于初学者,我可以看到您没有在方法中初始化或声明变量。您不应该将if块移动到try中吗?如果抛出InputMismatchException,是否值得测试userInput的值?这似乎更像是一个注释而不是答案。@Peeskillet-我不能对其他帖子发表评论,因为我没有足够的声誉。:)@Peeskillet-谢谢!!但它说你需要50%的声誉。我有25英镑。很好,我会做到的。非常感谢。