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

本文介绍了Java中的InputMismatchException异常,它是由于输入的数据类型与预期类型不匹配所导致的。异常来源于Scanner类的nextInt()等方法。处理此类异常的方法包括不处理(因为它继承自RuntimeException)、使用try-catch捕获或用throws声明。

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

 控制台情况:

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

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小陈呀~

您的鼓励是我最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值