java - 在循环中实现 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;
解决方案
您可能调用 next() 而不是 nextLine(),这可能会读取错误的输入并继续将您带回异常块。