【发布时间】:2015-01-18 00:55:13
【问题描述】:
当 b 为空时,我正在尝试打印异常消息。但是,当我运行程序并且不输入任何内容并按 Enter 键时,它仍然在等待。如果我输入 null 或任何其他字符串(不是数字,数字可以正常工作),它会给出如下所示的异常
public a<X> insert(X b) {
if ((b.equals(null))|| (b==null)||(b.equals("null"))||(b.equals("NULL"))){
throw new IllegalArgumentException("Illegal Argument Exception");
}
return null;
}
输入字符串时执行:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Q.main(a.java:145)
【问题讨论】:
-
in
(b.equals(null))|| (b==null)-b.equals(null)没有意义。 -
主要问题不在于条件..它可以更改..问题是当我键入时,例如,当 X 为 int 时,我应该得到非法参数异常,但我得到上面给出的错误信息
-
您能否分享一个更完整的 sn-p,其中还包括您对
Scanner的使用? -
@Sam 如果您输入的不是整数,
nextInt()将抛出InputMismatchException(documentation)