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