【问题标题】:identifier expected in try catch blocktry catch 块中需要的标识符
【发布时间】:2014-12-01 08:16:42
【问题描述】:

我正在尝试运行一个 catch 块,但它一直说需要一个标识符。欢迎任何帮助。此方法的对象(它在 main 中,因此我可以对其进行测试)是获取整数的有效值。如果该值无效,它应该循环直到输入有效数字。我尝试使用 while 循环来执行此操作,并使用 try...catch 来修复任何异常。谢谢

import javax.swing.JOptionPane;
import java.lang.Integer;

public class test
{
    public static void main (String[] args) throws NumberFormatException
    {
        String input;
        boolean x = false;
        int number;

        input = JOptionPane.showInputDialog("Enter an integer: ");      //creates input box for user to enter integer value
        number = Integer.parseInt(input);

        try
        {
           while (number < -2147483648 && number > 2147483647)
        {
            x = false;
            number = Integer.parseInt(input);
            System.out.println("You selected: " + number)
        }

        }

        catch (NumberFormatException)
        {
             input = JOptionPane.showInputDialog("Enter a valid integer: ");
        }


    }

}

【问题讨论】:

    标签: java exception try-catch


    【解决方案1】:

    关于您的数字问题: 号码 2147483647 这些是整数的最小值和最大值,所以也许使用 long 类型而不是 int 会有所帮助。

    【讨论】:

    • 我的教授希望我们使用整数的最小和最大范围,它们不包括在内,所以数据仍然可以作为 int 吗?
    【解决方案2】:

    您没有在catch 语句中为NumberFormatException 定义名称(标识符)。

    你需要:

    catch (NumberFormatException e)
    {
        ...
    }
    

    【讨论】:

    • 这回答了这个问题,非常感谢。但是现在代码仍然很混乱,并没有像我希望的那样编译。对我有什么提示/建议吗? (我不需要直接的答案,但感谢您的帮助)
    • 我不完全确定你的意思。代码是如何混乱的?您发布的内容看起来并不混乱。代码要么编译要么不编译。你的意思是它的行为不像你希望的那样?
    • 是的,这是一种更好的措辞方式。当我输入一个大于 -2147483648 的值和一个小于 2147483647 的数字时,我进入循环。这与我想要的相反。其次,当我输入一个不应该有效的数字时,我遇到了异常错误。
    • 这是一个与您最初提出的问题不同的问题,它与 catch 块中的标识符异常有关。您需要/应该发布一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多