ASP.NET Lab

The Best Web, The Best Future

博客园 首页 新随笔 订阅 管理

下列指导方针有助于确保你的自定义异常是正确被设计的。

避免纵深的异常层次。

关于更多信息,请参考:[类型与命名空间]。

从 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)
   {
        // 添加实现。
   }
}
只在要求到一个适当的许可之后才通过 System.Object.ToString 的一个重载来报告对于安全敏感的信息。如果对于许可的要求失败,返回一个不包括安全敏感信息的字符串。
在私有的异常状态中存储有用的安全敏感信息。并且确保只有被信任的代码才能够获取到这些信息。
考虑在通过编程来访问与异常有关的额外信息(除了消息字符串之外)的时候提供异常属性。
posted on 2007-02-03 16:43  Laeb  阅读(1213)  评论(0编辑  收藏  举报