当你通过扩展Exception类(用于创建新的异常)时,会得到一个警告要求添加serialVersionUID
。我知道在序列化和反序列化中serialVersionUID
扮演了重要的角色,但是我的异常需要进行序列化吗?有人能给我提供一个实际情况,在这种情况下我需要让自定义异常类进行序列化和反序列化?
当你通过扩展Exception类(用于创建新的异常)时,会得到一个警告要求添加serialVersionUID
。我知道在序列化和反序列化中serialVersionUID
扮演了重要的角色,但是我的异常需要进行序列化吗?有人能给我提供一个实际情况,在这种情况下我需要让自定义异常类进行序列化和反序列化?
Throwable
实现了Serializable
接口。默认情况下,所有异常都是可序列化的,这是一种语言设计决策,因为作者希望异常能够在没有特殊配置的情况下能够被发送到远程。如果基类不可序列化,则在远程方法失败时很难传达确切的错误信息,因为您无法控制内置异常类型。Exception
类型都定义serialVersionUID
(IDE可以为你生成),或者抑制警告。你可能会发现我早期的问题explicit serialVersionUID considered harmful?相关。