在while循环中使用Try / Catch

时间:2016-05-14 14:33:59

标签: java while-loop try-catch do-while illegalargumentexception

我要求我的用户通过正则表达式格式输入" ABC-1234"否则会抛出IllegalArgumentException。我想继续询问正确的输入(我在思考的同时或者在布尔变量设置为false的同时输入不正确...)我将如何使用try / catch进行操作?

这是我迄今为止所拥有的。谢谢!

try {
            Scanner in = new Scanner (System.in);

            System.out.println("Please enter id: ");
            String id = in.nextLine();

            Inventory i1 = new Inventory (id, "sally", 14, 2, 2);
            System.out.println(i1);

        } catch (Exception ex) {

             System.out.println(ex.getMessage());

        }

1 个答案:

答案 0 :(得分:1)

显然,你需要某种循环,你需要一些机制来在成功时摆脱循环。假设从IllegalArgumentException构造函数抛出Inventory,您的解决方案可以简单地为:

while (true) {
    try {
        // ...
        Inventory i1 = new Inventory(id, "sally", 12, 2, 2);
        System.out.println(i1);
        break; // or return i1 if you enclose this snippet in a function
    } catch (Exception ex) {
        // ...
    }
}