java - 尽管我有一个 Eclipse 要求返回声明

标签 java int return try-catch inputmismatchexception

protected int readInt(String prompt) {
    try {
        System.out.print(prompt);
        int i = keyboard.nextInt();
        keyboard.nextLine();
        return i;

    } catch (java.util.InputMismatchException e) {
        System.out.println("Error: Insert a number.");
    }
}

嗨! Eclipse 在方法 readInt() 中给我这个错误:“此方法必须返回类型为 int 的结果。”并给出示例解决方案“添加返回语句”和“将返回类型更改为无效”。我试图将 return i 语句放在 try-and-catch 循环之外,但是当我这样做时,return 语句找不到变量 i。

我已经为此苦苦挣扎了一段时间,但似乎无法让它发挥作用...我将不胜感激任何帮助!谢谢。

最佳答案

想想如果发生 InputMismatchException 会发生什么。

您的代码将捕获它,打印“错误:插入数字。”。然后什么?您的函数被声明为返回一个 int,并且它有一个不返回任何内容的路径。

您应该返回一个无法以其他方式返回的值并指示错误,或者重新抛出异常。

关于java - 尽管我有一个 Eclipse 要求返回声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21171737/

相关文章:

c# - 无符号整数 (c++) 与 uint (c#)

java - 如何创建一个组合两个变量的变量?

java - 几乎相同的语句,但不同的值

c# - 不从循环返回值

Javascript 调用与返回函数

java - 用于提取列名称和值的正则表达式不起作用

java - .exceptionally()是否会捕获嵌套的Future中抛出的异常?或者在哪里放置.exceptionally()是正确的

c - char 数和 int 数的大小(以字节为单位)

java - JTextPane,文本/html 内容 : nested HTML element do not inherit font size?

java - 如何在 Firebase 中按字段过滤项目?