java - 尝试在 ActionListener 中调用的方法中抛出异常

标签 java bluej

所以我不确定为什么在尝试调用带有按钮的操作监听器的方法时会出现错误。我创建了面板并将布局设置为流布局,然后将其添加到内容 Pane 中,然后在此处创建了按钮...

JButton buyButton = new JButton("Buy");
    panel.add(buyButton);
    buyButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {buy();}});

然后我在 buy 方法中创建了一个 try catch block ...

public void buy throws OverException
{
    try{
       //tries the code
    }
    catch(OverException e){
      //does stuff...
    }
}

但它一直说必须在创建按钮时在 buy() 方法调用中捕获或声明抛出它。

最佳答案

因此,请执行编译器明确告诉您的操作:... 必须在 buy() 的方法调用中捕获或声明为抛出

OverException 必须在 actionPerformed 中捕获,或者 actionPerformed 必须声明为抛出 OverException

您无法更改 actionPerformed 的声明,因此请使其捕获异常:

buyButton.addActionListener(
    new ActionListener() 
        {
            public void actionPerformed(ActionEvent e) 
            {
                try {
                    buy();
                }
                catch(OverException ex)
                {
                     // TODO error handling
                }
            }
        });

关于java - 尝试在 ActionListener 中调用的方法中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37560236/

相关文章:

java - 如何在Java代码中使用资源包文件?

java - 使用单独的线程更新全局 HashMap 时出现空指针异常

java - java/android 新手 : class loaders vs import

java - 使用 JSP 和 Servlet Java 的消息提示

java - 程序忽略 "If Else"并打印所有内容

java - 程序本应将 DNA 分成 3 组,但发现序列太长

java - 是否可以从 Gradle 依赖项修改 Android Studio 中库文件的源代码

java - 确保 hashMap 中的所有 ids 值都不同?

java - 在Java中通过JFrame显示图像后打开终端窗口

java - BlueJ 计算器