InputMisMatchException(输入类型不匹配异常)

1.InputMisMatchException异常类的继承关系

        java.lang.Object

                java.lang.Throwable

                        java.lang.Exception

                                java.lang.RuntimeException

                                        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
    }
}

 控制台情况:

InputMisMatchException(输入类型不匹配异常)_第1张图片

"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.该异常有三种处理方法。

你可能感兴趣的:(运行时异常,异常,运行时异常,输入类型不匹配异常,Runtime异常,异常处理)