我希望系统在捕获InputMismatchException异常时可以交给我处理,比如打印“输入有误,请重新输入!”,然后我可以再次输入。比如下面这个switch,我想用以上方法检测每个nextDouble();
switch(k)
{
case 1:System.out.println("请输入三边长度");
i.setValue(x.nextDouble(),x.nextDouble(),x.nextDouble());i.getPerimeter();i.getArea();
count1++;
break;
case 2:System.out.println("请输入长和宽");
ii.setValue(x.nextDouble(),x.nextDouble());ii.getPerimeter();ii.getArea();
count2++;
break;
case 3:System.out.println("请输入半径");
iii.setValue(x.nextDouble());iii.getPerimeter();iii.getArea();
count3++;
break;
default:System.out.println("输入有误!");
}
}
我知道可以用下面的方法,但是好像对每个输入都要重复使用
for(;;){
try{Scanner x=new Scanner(System.in);
if(!x.hasNextInt())throw new InputMismatchException();
}catch(InputMismatchException e){
System.out.println("输入有误");
continue;
}
}