[英]Repeating an Exception
我在下面的代码中使用异常。 我希望能够重复这个问题,直到他们输入正确的值,该值是double或int值。 我的问题是第二次要求输入值时。 我应该更改或使用什么来解决此问题?
do{
try{
System.out.println("Enter number");
number = Double.parseDouble(br.readLine());
} catch(Exception ex) {
System.out.println(ex +"\nEnter an int or double value");
number = Double.parseDouble(br.readLine());
}
} while(false);
输出:
Enter number
qwe
java.lang.NumberFormatException: For input string: "qwe"
Enter an int or double value
we
Exception in thread "main" java.lang.NumberFormatException: For input string:
"we"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1241)
at java.lang.Double.parseDouble(Double.java:540)
at practicedd.PracticeDD.main(PracticeDD.java:38)
Java Result: 1
您的第二个parseDouble不在try / catch中,因此不会被捕获。 同样,您的while(false)将只让它第一次执行。 这对您有用吗? 另外,您可以执行一会儿(true)并在parseDouble之后中断。
Double number = null;
do{
try{
System.out.println("Enter number");
number = Double.parseDouble(br.readLine());
}catch(Exception ex){
System.out.println(ex +"\nEnter an int or double value");
}
}while(number==null);
}}
您的代码几乎是正确的。 首先,您需要更改while
循环的条件,并且还需要打破它
do{
try{
System.out.println("Enter number");
number = Double.parseDouble(br.readLine());
break;
} catch(Exception ex) {
System.out.println(ex +"\nEnter an int or double value");
number = Double.parseDouble(br.readLine());
}
} while(true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.