在我的CS课程中,如果用户输入负数,我们必须编写一个抛出异常的程序;程序应提示用户只输入正数,然后让他们重新输入数字。但每次抛出异常,我的程序都会被暂停。
我做错了什么,或者如果抛出异常,是否无法继续程序?抛出异常时程序会自动挂起吗?
try{
do
{
N = kb.nextDouble();
if(N<0)
{
throw new NegativeArraySizeException();
}
else
j++;
}
while(j==0);
fill.size(N);
}
catch(NegativeArraySizeException e)
{
System.out.println("The number you entered must be positive. Please try again.");
}
答案 0 :(得分:1)
do-while
应该包装try-catch
语句:
do {
try {
//try to read number
} catch (YourCustomException e) {
//print message to user
}
} while (<condition>)
答案 1 :(得分:0)
解决: 谢谢Luiggi, 我想通了。
j=0;
do
{
value=kb.nextDouble();
try
{
if(value<0)
throw new NegativeArraySizeException();
else
j++;
}catch(NegativeArraySizeException e)
{
System.out.println("The number you entered must be positive. Please try again.");
}
}while(j==0);
fill.add(value);