在while循环中使用Try/Catch



我要求用户通过regex格式"ABC-1234"进行输入,否则会抛出IllegalArgumentException。我想一直要求正确的输入(我在想while或do while,当输入不正确时,布尔变量设置为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());
        }

显然,你需要某种循环,你需要一些机制来打破成功的循环。假设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) {
        // ...
    }
} 

相关内容

  • 没有找到相关文章

最新更新