【问题标题】:not seeing the error message I've set on the catch method (Java)没有看到我在 catch 方法上设置的错误消息(Java)
【发布时间】: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); 放在末尾或其他内容即可测试输出。

标签: java try-catch


【解决方案1】:

抛出异常的代码必须放在try块中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-06
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多