在 while 循环中使用 Try / Catch
Using a Try / Catch in a while loop
我要求我的用户通过正则表达式格式输入 "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) {
// ...
}
}
我要求我的用户通过正则表达式格式输入 "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) {
// ...
}
}