前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CA1032:实现标准异常构造函数

CA1032:实现标准异常构造函数

作者头像
用户4268038
发布2022-01-10 09:35:41
4410
发布2022-01-10 09:35:41
举报
文章被收录于专栏:stcnb

“值”

RuleId

CA1032

类别

设计

修复是中断修复还是非中断修复

非中断

原因

类型扩展了 System.Exception,但未声明所有必需的构造函数。

规则说明

异常类型必须实现以下三个公共构造函数:

公共 NewException()

公共 NewException(string)

公共 NewException(string, Exception)

如果不能提供完整的构造函数集,要正确处理异常将变得比较困难。 例如,具有签名 NewException(string, Exception) 的构造函数用于创建由其他异常引起的异常。 如果没有此构造函数,你无法创建和引发包含内部(嵌套)异常的自定义异常实例,在这种情况下,托管代码应执行此操作。

有关详细信息,请参阅 CA2229:实现序列化构造函数。

如何解决冲突

若要修复此规则的冲突,请将缺少的构造函数添加到异常,并确保它们具有正确的可访问性。

何时禁止显示警告

当冲突是由于对公共构造函数使用不同的访问级别而引起时,可以安全地禁止显示此规则的警告。

抑制警告

可以通过多种方式来禁止显示代码分析警告,包括禁用项目的规则、使用预处理器指令为特定代码行禁用该规则或应用 SuppressMessageAttribute 特性。 有关详细信息,请参阅如何禁止显示代码分析警告。

示例

以下示例包含与此规则冲突的异常类型和正确实现的异常类型。

// Violates rule ImplementStandardExceptionConstructors.

public class BadException : Exception

{

public BadException()

{

// Add any type-specific logic, and supply the default message.

}

}

[Serializable()]

public class GoodException : Exception

{

public GoodException()

{

// Add any type-specific logic, and supply the default message.

}

public GoodException(string message) : base(message)

{

// Add any type-specific logic.

}

public GoodException(string message, Exception innerException) :

base(message, innerException)

{

// Add any type-specific logic for inner exceptions.

}

}

另请参阅

CA2229:实现序列化构造函数

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档