【问题标题】:No exception of type UnderflowException can be thrown;不能抛出 UnderflowException 类型的异常;
【发布时间】:2014-10-21 07:46:24
【问题描述】:

我正在尝试用 Java 中的一些函数实现一个堆栈。我已经创建了像这样实现异常的类 UnderflowException:

package exceptions;

public class UnderflowException extends Exception
{
    public UnderflowException(String err)
    {
        super(err);
    }
}

当我实现接口时,我收到以下错误 “不能抛出 UnderflowException 类型的异常;异常类型必须是 Throwable 类”当我尝试抛出时。

我的界面是这样的:

import exceptions.*;
public interface Stack
{
    public void push(Object x);
    public void pop() throws UnderflowException;
    public Object top() throws UnderflowException;
    //other functions
}

UnderflowException 类有问题吗?谢谢!

【问题讨论】:

  • 您是在扩展java.lang.Exception 还是一些自定义的Exception 类?
  • 我相信是java.lang.Exception
  • 该错误消息表明 Throwable 不在您的 UnderflowException 类的类型层次结构中 - 如果您扩展 java.lang.Exception 肯定会出现这种情况。如果您的异常包中有一个名为Exception 的类,那么您可能无意中继承了它。

标签: java exception throws throwable


【解决方案1】:

Exception 替换为java.lang.Exception。看起来你使用了错误的类和 FQN 帮助解决问题。

【讨论】:

  • 我已经用java.lang.Exception 替换了Exception,现在似乎可以工作了。谢谢!
  • 查看您的导入。或者也许你在这个包中有你自己的Exception 类。 (打电话给你自己的班级Exception 是个坏主意,因为它会引起很多误解)
猜你喜欢
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多