.NET 指南:设计自定义异常

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

避免纵深的异常层次。

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

从 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 的一个重载来报告对于安全敏感的信息。如果对于许可的要求失败,返回一个不包括安全敏感信息的字符串。
在私有的异常状态中存储有用的安全敏感信息。并且确保只有被信任的代码才能够获取到这些信息。
考虑在通过编程来访问与异常有关的额外信息(除了消息字符串之外)的时候提供异常属性。

转载于:https://www.cnblogs.com/Laeb/archive/2007/02/03/639002.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值