如何正确实现一个自定义 Exception
💡
原文中文,约5200字,阅读约需13分钟。
📝
内容提要
最近在公司项目中编写了几个自定义的异常类,但sonarqube提示这些异常不符合ISerializable模式。需要按照微软的指导重新设计异常类,并在序列化构造器中恢复字段值。总结时需要注意添加[Serializable]属性、遵守微软的指导、在序列化构造器中恢复字段值,并重写GetObjectData方法。适用于实现ISerializable接口的类。
🎯
关键要点
- 最近在公司项目中编写了自定义异常类,sonarqube提示不符合ISerializable模式。
- 自定义异常类需要添加[Serializable]属性,并遵循微软的设计指导。
- 异常类必须可序列化,以便跨越应用程序域和远程处理边界。
- 需要在自定义异常中实现多个构造器,包括序列化构造器。
- 在序列化构造器中调用基类构造器,并恢复字段值。
- 重写GetObjectData方法,将需要序列化的字段添加到SerializationInfo对象中。
- 确保在GetObjectData方法中调用基类的GetObjectData方法。
- 自定义异常的设计原则适用于所有实现ISerializable接口的类。
➡️