首页 > 解决方案 > 在循环中实现 try-catch

问题描述

我想在循环内创建一个 try-catch 块,让用户有多个机会以正确的格式输入信息。当我输入格式不正确的内容时,程序会显示 sysout 消息“请输入格式正确的姓名和年龄”。从捕获块。

问题是当我在此消息之后输入格式正确的信息时,它一直显示相同的消息“请输入正确格式的姓名和年龄”。即使它应该退出并询问我是否要继续。

这是我所拥有的:

        int inAge;
        String inName;

        while (true) {
            try {
                inAge = Integer.parseInt((input.substring((input.indexOf(',') + 1))));
                inName = input.substring(0, input.indexOf(','));
                list.add(new Plant(inName, inAge));
                break;
            } catch (Exception e) {
                System.out.println("Please enter name and age with correct format.");
                in.next();
            }
        }

        System.out.println("Do you wish to continue? (Yes or No)");
        endOrNo = in.nextLine();

        if ("yes".equalsIgnoreCase(endOrNo))
            go = true;
        else
            go = false;

标签: javaloopstry-catchuser-input

解决方案


您可能调用 next() 而不是 nextLine(),这可能会读取错误的输入并继续将您带回异常块。


推荐阅读