【发布时间】:2012-03-20 00:53:28
【问题描述】:
程序将要求输入一个整数。我在 catch 方法中设置了一条错误消息,以防输入是字符或除整数之外的任何内容。但是,当我尝试输入字母时,我没有看到错误消息。我也尝试过不同的异常类型和相应的导入,但没有区别。代码如下:
public class Random1 {
public static void main(String[] args){
int g;
Scanner input = new Scanner(System.in);
System.out.print("Enter your guess: ");
g = input.nextInt();
Random r = new Random();
int a = r.nextInt(10) + 1;
try {
if (g == a) {
System.out.println("**************");
System.out.println("* YOU WON! *");
System.out.println("**************");
System.out.println("Thank you for playing!");
} else if (g != a) {
System.out.println("Sorry, better luck next time!");
}
} catch (Exception e) {
System.err.println("Not a valid input. Error :" + e.getMessage());
}
【问题讨论】:
-
尝试添加“System.out.println(g);”在 g = input.nextInt() 之后。看看你在输入字母时会得到什么
-
错误,但不是我在 catch 方法上写的那个。
-
在您的 try/catch 块中没有可能发生的错误,如果您想检查输入的有效性,请将您的
g = input.nextInt();行移到 try/catch 块中。或者如 mfrankli 所说,只需将System.out.println(g);放在末尾或其他内容即可测试输出。