下列指导方针有助于确保你的自定义异常是正确被设计的。
避免纵深的异常层次。
关于更多信息,请参考:[类型与命名空间]。
从 System.Exception 或者一种其他的公共基本异常那里派生出自定义异常。
注意:在[捕获并且抛出标准的异常类型]一文中声明了你不应该从 ApplicationException 那里派生自定义异常的指导方针。
在异常类的名称未尾部分添加后缀 Exception。
一致的命名约定有助于降低开发者对于新库的学习曲线。
使异常可序列化。必须是可序列化的异常才能够正常地在跨应用程序环境以及远程边界中工作。
关于使类型可序列化的信息,请参考:[序列化]。
为所有异常提供(至少应该提供)下列公共构造器。并确保参数的名称与类型与下列代码范例中所使用的一样。
C#
public class NewException : BaseException, ISerializable { public NewException() { // 添加实现。 } public NewException(string message) { // 添加实现。 } public NewException(string message, Exception inner) { // 添加实现。 } // 这个构造器是序列化时所必需的。 protected NewException(SerializationInfo info, StreamingContext context) { // 添加实现。 } }