java异常处理,用scanner输入数据,出错后抛出异常并要求再次输入,但运行时输入错误数据类型后。。。

2024年11月15日 18:37
有2个网友回答
网友(1):

nextInt方法在发生异常后,不再接受用户输入的任何数据,而是徘徊在异常区域,如果外部使用死循环,从而导致死循环发生。

改用nextLine搭配NumberFormatException即可。



Scanner keyboard = new Scanner(System. in );
for (;;) {
    System.out.println("输入1个整数: ");
    try {
        userAnswer = Integer.parseInt(keyboard.nextLine().trim());
        break;
    } catch (NumberFormatException nfe) {
        System.out.print("输入数据类型错误!你必须输入数值数据!\n");
        continue;
    }
}
keyboard.close();

网友(2):

写一个方法,进行递归调用,keyboard.close();这一句删掉, catch代码块里面就是写递归调用的方法,用 方法名();这个方式调用