1.InputMisMatchException异常类的继承关系
java.util.NoSuchElementException
java.util.InputMismatchException
2.InputMisMatchException(输入类型不匹配异常)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个值:");
String value1 = input.nextLine(); //String类型的遍历value1接收ada1
System.out.println("请输入第二个值:");
int value2 = input.nextInt(); //String类型的遍历value1无法接收11a,产生InputMisMatchException
}
}
控制台情况:

"C:\Program Files\Java\jdk1.8.0_251\bin\java.exe" "-javaagent:D:\IDEA\IntelliJ IDEA
.
.
.
Files\Java\jdk1.8.0_251\jre\lib\rt.jar;D:\IdeaWorkspace\3.20\out\production\3.20" Main
请输入第一个值:
ada1
请输入第二个值:
11a
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Main.main(Main.java:10)Process finished with exit code 1
3.产生InputMisMatchException原因:
第二次输入11a不是纯数字类型,然而却用int类型的变量去接收,所以产生InputMisMatchException异常。
4.处理方法:
1.可以不进行处理,因为该异常间接继承自RuntimeException。
2.可以用try...catch捕获处理异常。
3.可以用throws抛出异常
5.小结:
1.InputMisMatchException继承自NoSuchElementException间接继承自RuntimeException。
2.该异常产生的原因是输入的类型和接收输入的类型不一致。
3.该异常有三种处理方法。
本文介绍了Java中的InputMismatchException异常,它是由于输入的数据类型与预期类型不匹配所导致的。异常来源于Scanner类的nextInt()等方法。处理此类异常的方法包括不处理(因为它继承自RuntimeException)、使用try-catch捕获或用throws声明。
1773





