InputMismatchException是什么意思?

时间:2011-07-13 06:29:28

标签: java exception-handling

Exception in thread "main" java.util.InputMismatchException

当我使用扫描仪类时,它对我来说意味着什么?完整的堆栈跟踪是

Exception in thread "main" java.util.InputMismatchException
        at java.util.Scanner.throwFor(Unknown Source)
        at java.util.Scanner.next(Unknown Source)
        at java.util.Scanner.nextInt(Unknown Source)
        at java.util.Scanner.nextInt(Unknown Source)
        at ParseString.main(ParseString.java:9)

3 个答案:

答案 0 :(得分:3)

请参阅JavaDoc上的文档。

答案应该清楚:

  

由扫描程序抛出,表示检索到的令牌没有   匹配预期类型的​​模式,或者令牌不在   预期类型的​​范围。

答案 1 :(得分:1)

来自the docs

  

由扫描程序抛出,表示检索到的令牌与预期类型的​​模式不匹配,或者令牌超出预期类型的​​范围。

所以也许你打电话给nextInt,但下一个标记是“1.5”或“foo”。您应该查看堆栈跟踪以确切了解导致问题的Scanner调用,然后确定令牌实际是什么,以及您希望如何处理这种类型的失败。

答案 2 :(得分:0)

您应该阅读相应的javadoc(例如:http://download.oracle.com/javase/1,5.0/docs/api/java/util/Scanner.html)。如果输入与您使用的方法不匹配,则会引发异常,例如,您使用getBoolen,但下一个值无法转换为布尔值。