Java 中的 InputMismatchException

2025年5月12日 | 阅读 3 分钟

InputMismatchException 是Java中最常见的异常之一。InputMissmatchException 是一个未检查的异常,因为它 `java.lang.RuntimeException` 的子类。java.util.InputMismatchException 的层次结构如下:

InputMismatchException in Java

由于它是 `java.lang.Throwable` 和 `java.lang.Object` 类的子类,因此它提供了这两个类提供的所有方法。

java.lang.Throwable 类的方法

addSuppressed(), fillInStackTrace(), getCause(), getLocalizedMessage(), getMessage(), getStackTrace(), getSuppressed(), initCause(), printStackTrace(), printStackTrace(), printStackTrace(), setStackTrace(), and toString().

java.lang.Object 类的方法

clone(), equals(), finalize(), getClass(), hashCode(), notify(), notifyAll(), and wait(). 要了解有关这些方法的更多信息,请访问以下链接:

object-class

post/java-throwable

InputMismatchException 类具有以下两个构造函数:

InputMismatchException()

这是默认构造函数,它以 null 作为其错误消息字符串来构造 InputMismatchException

InputMismatchException()

这是一个参数化构造函数,它构造 InputMismatchException,保存对错误消息 s 的引用,以便 getMessage() 方法检索。

InputMismatchException 什么时候发生?

此未检查的异常由 Scanner 抛出,以指示检索到的标记与预期类型的模式不匹配,或者标记超出了预期类型的范围。

java.util 包提供了一个 Scanner 类,用于从用户那里获取基本数据类型和字符串的输入。这是在java中读取用户输入的最简单方法。当用户未提供正确的输入类型或输入超出范围时,会发生 InputMismatchException

简而言之,当我们输入的类型不正确时,会收到 InputMismatchException。当 Scanner 期望输入整数,而我们向 Scanner 输入浮点值时,它会抛出 InputMismatchException

同样,当 Scanner 期望输入整数,而我们向 Scanner 输入 Big Integer 值时,它也会抛出 InputMismatchException

InputMismatchExceptionExample1.java

输出

InputMismatchException in Java

InputMismatchExceptionExample2.java

输出

InputMismatchException in Java

如何避免 InputMismatchException

在 Java 中避免 InputmismatchException 非常简单。只有一个简单的方法可以避免此异常,即向 Scanner 提供有效输入(类型相似或数据应在预期的数​​据类型范围内)。

在上面的示例中,如果我们为 Scanner 输入 five,则不会发生 InputMismatchException。

InputMismatchException in Java