【发布时间】:2018-05-07 16:40:37
【问题描述】:
System.out.println("Enter floor: ");
int f=x.nextInt();
p.setFloor(f);
此代码与一个对象相关联
public void setFloor(int floor){
try{
this.floor = floor ;
}catch (InputMismatchException e){
System.out.println("Enter only digits");
}
}
输出
Enter floor:
hesdd
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
为什么捕获不起作用?
【问题讨论】:
-
int f=x.nextInt();应该在try/catch块中 -
你想试试这个
int f=x.nextInt();不是吗 -
你为什么期望
this.floor = floor抛出一个InputMismatchException?可以抛出异常的是nextInt()方法,但您不需要捕获它。相反,在尝试调用nextInt()之前先调用hasNextInt()
标签: java oop exception-handling inputmismatchexception