Java 无法从异常继承

Java 无法从异常继承,java,exception,Java,Exception,我正在尝试编写一个从Exception派生的类BrokerNobjectException类。 但在Eclipse中,我得到了以下错误: 可序列化类BrokerNobjectException未声明long类型的静态最终SerialVersionId字段 我不明白为什么它要求我声明一个字段。 接口不应该强制声明一些方法吗? 无论如何,我想要拥有这个类,因为我想要以一种不同于捕获所有异常的方式捕获它,例如,我有一个块: try { if(...) throw new Exc

我正在尝试编写一个从Exception派生的类BrokerNobjectException类。 但在Eclipse中,我得到了以下错误:

可序列化类BrokerNobjectException未声明long类型的静态最终SerialVersionId字段

我不明白为什么它要求我声明一个字段。 接口不应该强制声明一些方法吗? 无论如何,我想要拥有这个类,因为我想要以一种不同于捕获所有异常的方式捕获它,例如,我有一个块:

try
{
    if(...)
        throw new Exception("wrong");
    if(...)
        throw new BrokenObjectException("wrong");
}
catch(BrokenObjectException e)
{
    // do something (action1)
    throw e;
}
catch(Exception e)
{
    // so something (action2)
    throw e;
}
所以在第一个catch块中,我写了“做点什么”。 这是因为根据抛出的异常类型,我希望执行不同的操作。 因此,由于BrokerNobjectException是从Exception派生而来的,因此应该捕获两次。 但是如果抛出了BrokerNobjectException,我想执行action1和action2,如果只是抛出了一个普通异常,我只想执行action2。这可能吗?
如何修复我遇到的错误?

我相信您可以突出显示eclipse提供的错误文本,然后告诉它生成串行版本UUID。在那之后,它应该按照你想要的方式工作

您也可以使用

@SuppressWarnings("serial")
如果你想忽略它。但是,我建议继续并生成它。有关为什么要查看此堆栈溢出帖子的更多信息。

我相信您可以突出显示eclipse提供的错误文本,然后告诉它生成串行版本UUID。在那之后,它应该按照你想要的方式工作

您也可以使用

@SuppressWarnings("serial")
如果你想忽略它。但是,我建议继续并生成它。有关为什么要查看此堆栈溢出帖子的更多信息。
这不是一个错误,而是一个警告。只需在类声明上方使用
@SuppressWarnings(“串行”)
注释:

@SuppressWarnings("serial")
public class BrokenObjectException extends Exception
{
    BrokenObject(String message)
    {
        ;
    }
}

发生的情况是,您正在扩展一个实现可序列化接口的类,因此,如果您没有完全遵守其约定,编译器将向您发出警告。要解决这个问题(因为我怀疑您是否想要序列化这个类的对象),只需使用上面的注释。

这不是一个错误,而是一个警告。只需在类声明上方使用
@SuppressWarnings(“串行”)
注释:

@SuppressWarnings("serial")
public class BrokenObjectException extends Exception
{
    BrokenObject(String message)
    {
        ;
    }
}

发生的情况是,您正在扩展一个实现可序列化接口的类,因此,如果您没有完全遵守其约定,编译器将向您发出警告。要解决这个问题(因为我怀疑您是否想要序列化这个类的对象),只需使用上面的注释。

您知道为什么需要SerialVersionId字段吗?这就是你想要的吗?如果是,请查看下面的

您知道为什么需要SerialVersionId字段吗?这就是你想要的吗?如果是,请看以下内容