1避免使用深的异常层次结构。
2一定要从 System.Exception 或其他常见基本异常之一派生异常。
3异常类名称一定要以后缀 Exception 结尾。
4应使异常可序列化。 异常必须可序列化才能跨越应用程序域和远程处理边界正确工作。
5一定要在所有异常上都提供(至少是这样)下列常见构造函数。 确保参数的名称和类型与在下面的代码示例中使用的那些相同。
public class NewException : BaseException, ISerializable
{
public NewException()
{
// Add implementation.
}
public NewException(string message)
{
// Add implementation.
}
public NewException(string message, Exception inner)
{
// Add implementation.
}
// This constructor is needed for serialization.
protected NewException(SerializationInfo info, StreamingContext context)
{
// Add implementation.
}
}
6 一定要只在要求适合的权限后,才通过 System.Object.ToString 的重写报告安全敏感信息。 如果权限要求失败,则返回一个不包括安全敏感信息的字符串。
7 一定要以私有异常状态存储有用的安全敏感信息。 请确保只有受信任的代码才能获取该信息。
8 考虑提供异常属性,以便可以以编程方式访问除消息字符串之外与异常相关的额外信息。
时间: 2024-11-13 03:20:42