如何正确实现一个自定义 Exception

💡 原文中文,约5200字,阅读约需13分钟。
📝

内容提要

最近在公司项目中编写了几个自定义的异常类,但sonarqube提示这些异常不符合ISerializable模式。需要按照微软的指导重新设计异常类,并在序列化构造器中恢复字段值。总结时需要注意添加[Serializable]属性、遵守微软的指导、在序列化构造器中恢复字段值,并重写GetObjectData方法。适用于实现ISerializable接口的类。

🎯

关键要点

  • 最近在公司项目中编写了自定义异常类,sonarqube提示不符合ISerializable模式。
  • 自定义异常类需要添加[Serializable]属性,并遵循微软的设计指导。
  • 异常类必须可序列化,以便跨越应用程序域和远程处理边界。
  • 需要在自定义异常中实现多个构造器,包括序列化构造器。
  • 在序列化构造器中调用基类构造器,并恢复字段值。
  • 重写GetObjectData方法,将需要序列化的字段添加到SerializationInfo对象中。
  • 确保在GetObjectData方法中调用基类的GetObjectData方法。
  • 自定义异常的设计原则适用于所有实现ISerializable接口的类。
➡️

继续阅读