首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CA1064:异常应该是公共的

CA1064:异常应该是公共的

作者头像
呆呆
发布于 2022-02-22 12:57:09
发布于 2022-02-22 12:57:09
28401
代码可运行
举报
文章被收录于专栏:centosDaicentosDai
运行总次数:1
代码可运行

规则 ID

CA1064

类别

设计

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

非中断

原因

非公共异常直接派生自 Exception、SystemException 或 ApplicationException。

规则说明

内部异常仅在其自己的内部范围内可见。 当异常超出内部范围后,只能使用基异常来捕获该异常。 如果内部异常继承自 Exception、SystemException 或 ApplicationException,则外部代码将没有足够的信息来了解如何处理该异常。

但是,如果代码有一个公共异常,稍后会用作内部异常的基异常,则有理由认为后续代码将能够对该基异常进行智能化操作。 该公共异常将会比 Exception、SystemException 或 ApplicationException 提供更多的信息。

如何解决冲突

使异常成为公共异常,或从不是 Exception、SystemException 或 ApplicationException 的公共异常派生内部异常。

何时禁止显示警告

如果确定在所有情况下私有异常都将在其自己的内部范围内被捕获,则禁止显示此规则的消息。

示例

此规则在第一个示例方法 FirstCustomException 上触发,因为 exception 类直接派生自 Exception ,并且是内部类。 此规则不会在 SecondCustomException 类上触发,尽管该类也直接派生自 Exception,但该类声明为公共类。 第三个类也不会触发该规则,因为它并非直接派生自 System.Exception、System.SystemException 或 System.ApplicationException。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Violates this rule
[Serializable]
internal class FirstCustomException : Exception
{
    internal FirstCustomException()
    {
    }
    internal FirstCustomException(string message)
        : base(message)
    {
    }
    internal FirstCustomException(string message, Exception innerException)
        : base(message, innerException)
    {
    }
    protected FirstCustomException(SerializationInfo info, StreamingContext context)
        : base(info, context)
    {
    }
}
// Does not violate this rule because
// SecondCustomException is public
[Serializable]
public class SecondCustomException : Exception
{
    public SecondCustomException()
    {
    }
    public SecondCustomException(string message)
        : base(message)
    {
    }
    public SecondCustomException(string message, Exception innerException)
        : base(message, innerException)
    {
    }
    protected SecondCustomException(SerializationInfo info, StreamingContext context)
        : base(info, context)
    {
    }
}
// Does not violate this rule because
// ThirdCustomException it does not derive directly from
// Exception, SystemException, or ApplicationException
[Serializable]
internal class ThirdCustomException : SecondCustomException
{
    internal ThirdCustomException()
    {
    }
    internal ThirdCustomException(string message)
        : base(message)
    {
    }
    internal ThirdCustomException(string message, Exception innerException)
        : base(message, innerException)
    {
    }
    protected ThirdCustomException(SerializationInfo info, StreamingContext context)
        : base(info, context)
    {
    }
}

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《21天精通IPv4 to IPv6》第7天:周综合回顾——如何实现IPv4到IPv6的平稳过渡?
在《21天精通IPv4 to IPv6》的第一周综合回顾中,我,猫头虎博主,将总结本周的学习内容,重点回顾关键知识点。本文将为你提供一份详尽的周回顾,涵盖从IPv4到IPv6的基础知识、配置方法,到安全实践。这篇技术博客包含丰富的关键词,如IPv6迁移、网络升级策略、IPv6配置,旨在帮助读者全面掌握IPv4到IPv6的迁移知识。
猫头虎
2024/04/09
2610
《21天精通IPv4 to IPv6》第7天:周综合回顾——如何实现IPv4到IPv6的平稳过渡?
从IPv4到IPv6:解密网络通信的新时代
互联网就像是一张巨大的网络地图,而IP地址则是连接这张地图上每个节点的地址。想象一下,IPv4就像是一片小河流,虽然一度满足了互联网发展的需要,但随着时间的推移,人们发现它已经不再能够满足日益增长的网络连接需求。而IPv6就像是一条宽阔的大海,为我们开辟了更广阔的网络世界。在这篇文章中,我们将一起探索IPv4与IPv6之间的区别,以及IPv6带来的新机遇和挑战。
一只牛博
2025/05/30
2040
从IPv4到IPv6:解密网络通信的新时代
《21天精通IPv4 to IPv6》第5天:IPv4与IPv6共存策略——如何为不同的系统实现IPv4与IPv6共存问题?
在《21天精通IPv4 to IPv6》系列的第五天,我,猫头虎博主,将深入讨论IPv4与IPv6的共存策略。本文内容将涵盖双栈网络、转换技术如NAT64和隧道技术,以及在不同操作系统中实现共存的方法。本文注重易读性和准确性,适合各级读者,涉及词条包括IPv4与IPv6共存、网络转换技术、操作系统网络配置等。
猫头虎
2024/04/09
9300
《21天精通IPv4 to IPv6》第5天:IPv4与IPv6共存策略——如何为不同的系统实现IPv4与IPv6共存问题?
腾讯云如何快速从IPv4向IPv6演进?
IPv6技术在国内沉寂数十年后,在国家推进下重新登上重要舞台。2018年工业和信息化部发布了关于贯彻落实《推进互联网协议第六版(IPv6)规模部署行动计划》的通知。不但展示国家推动IPv6的决心,更对各大运营商和公有云厂商提出了IPv6的改造目标:到2018年末,腾讯云、金山云、网宿科技、蓝汛、帝联科技完成内容分发网络(CDN)IPv6改造;云服务平台企业完成50%云产品IPv6改造。到2020年末,上述企业完成全部云产品IPv6改造。
用户1532637
2018/08/01
10.9K2
腾讯云如何快速从IPv4向IPv6演进?
如何应对苹果app 的ipv6 时代?腾讯专家教您进行环境改造
WWDC2015苹果宣布在ios9支持纯IPv6的网络服务,并且要求2016年提交到app store的应用必须兼容纯IPv6的网络,要求适配的系统版本是ios9以上(包括ios9)。
WeTest质量开放平台团队
2018/10/29
2K0
如何应对苹果 app 的 ipv6 时代?腾讯专家教您进行环境改造
WeTest质量开放平台团队
2017/05/12
4.6K0
如何应对苹果 app 的 ipv6 时代?腾讯专家教您进行环境改造
IPv6技术详解:基本概念、应用现状、技术实践(下篇)
在上篇《IPv6技术详解:基本概念、应用现状、技术实践(上篇)》,我们讲解了IPV6的基本概念。
JackJiang
2018/08/29
3.5K1
《21天精通IPv4 to IPv6》第0天:IPv4至IPv6的必要性与互联网IP资源发展趋势浅谈
在本篇技术博客中,作为猫头虎博主,我将带大家探讨IPv4资源耗尽的现状及IPv6的必然趋势。随着2024年1月31日IPv4地址的耗尽,互联网社会面临着转型的挑战,IPv6作为未来的解决方案呈现出前所未有的重要性。本文内容将涵盖IPv4与IPv6的基本概念、资源分配现状,以及未来发展趋势。我们的目标是为读者提供准确、易读的信息,无论您是初学者还是资深专家,都能从中获益。关键词包括IPv4, IPv6, IP资源管理, 网络发展趋势。
猫头虎
2024/04/09
3740
《21天精通IPv4 to IPv6》第0天:IPv4至IPv6的必要性与互联网IP资源发展趋势浅谈
IPV4 转 IPV6 解决方案大全
在这篇技术博客中,我们将深入探讨从IPv4向IPv6过渡的各种解决方案。文章内容涵盖双栈技术、隧道技术、协议转换、NAT-PT、DS-Lite和464XLAT等多种策略。无论你是网络技术的小白还是行业大佬,这篇文章都能为你提供宝贵的信息。关键词:IPv4, IPv6, 双栈技术, 隧道技术, 协议转换, NAT-PT, DS-Lite, 464XLAT, 网络技术。
猫头虎
2024/04/09
2.1K0
IPV4 转 IPV6 解决方案大全
IPv6 socket编程上--原理篇
背景 研究IPv6 socket编程原因: Supporting IPv6 in iOS 9 WWDC2015苹果宣布在ios9支持纯IPv6的网络服务,并且要求2016年提交到app store的应用必须兼容纯IPv6的网络,要求适配的系统版本是ios9以上(包括ios9)。 写这篇文章虽然是来源于iOS的需求,但是下面的内容除了特别说明外,大部分都适用于其他平台。 IPv6的复杂度之一,在于和IPv4的兼容和相互访问。本文会提及其他的互相访问技术,但是重点是NAT64,也是一般手机用户最有可能遇到的纯I
微信终端开发团队
2018/01/29
4K0
IPv6 socket编程上--原理篇
IPv6还未完成,IPv10已来!P4带你进入IPv10的世界
P4全称Programming Protocol-Independent Packet Processors,是Nick McKeown和他的团队在2014年提出的一种用于编程与协议无关的数据包处理器的高级语言。P4有三大特征:协议无关性、目标无关性、可重构性。快速实现网络新协议,缩短传统网络设备的研发周期,是P4的重要驱动力之一。本文依据IETF于2017年9月13日公布的最新的IPv10草案,用P4实现支持IPv10协议的交换机,并搭建实验环境来验证IPv10的特性。本文只是通过P4实现IPv10协议为
SDNLAB
2018/03/29
2K0
IPv6还未完成,IPv10已来!P4带你进入IPv10的世界
《21天精通IPv4 to IPv6》第6天:IPv6的安全配置——如何处理IPv6安全问题?
在《21天精通IPv4 to IPv6》系列的第六天,我,猫头虎博主,将探讨IPv6的安全配置。本文将详细讨论IPv6面临的安全挑战、安全配置策略以及实际案例和最佳实践,以确保读者能够在处理IPv6安全问题时更加得心应手。本文内容包含关键词,如IPv6安全、网络安全配置、IPv6最佳实践,旨在帮助读者无论是新手还是专家都能轻松理解IPv6安全问题的处理方法。
猫头虎
2024/04/09
5370
《21天精通IPv4 to IPv6》第6天:IPv6的安全配置——如何处理IPv6安全问题?
全球 IPv4 耗尽,下个月开始收费!
IPv4(Internet Protocol version 4)是互联网上使用最广泛的网络层协议之一,于1981年在 RFC 791 中发布,它定义了 32 位的IP地址结构和基本的协议操作。
SQL数据库开发
2024/04/24
2840
全球 IPv4 耗尽,下个月开始收费!
使用公共dns64服务让纯ipv6设备访问ipv4网络资源
NAT64是一种有状态的网络地址与协议转换技术,一般只支持通过IPv6网络侧用户发起连接访问IPv4侧网络资源。但NAT64也支持通过手工配置静态映射关系,实现IPv4网络主动发起连接访问IPv6网络。NAT64可实现TCP、UDP、ICMP协议下的IPv6与IPv4网络地址和协议转换。
许都博客
2022/11/14
16.1K0
使用公共dns64服务让纯ipv6设备访问ipv4网络资源
IPv6网络演进方案之数据中心网络架构详细方案【IPv6连载03】
企业网络向IPv6演进的目的是要在现有网络架构上构建IPv6能力,同时兼顾解决当前网络业务发展的问题。从企业业务层面出发,IPv6改造的基本要求是“在网络演进升级过程中,必须保障原IPv4业务的可持续性服务以及演进后的网络安全等级不弱于原IPv4网络”。
Ponnie
2022/04/18
3.6K0
IPv6网络演进方案之数据中心网络架构详细方案【IPv6连载03】
为什么IPv6还没有完全100%取代IPv4?
随着全球互联网的爆炸性增长,我们不可避免地面临了一个紧迫的问题:IPv4地址不够用了。尽管IPv6作为其继任者提供了巨大的优势,但为什么IPv4仍然主导着互联网世界?本文将探讨IPv4地址不足的背景,分析IPv4和IPv6的特点,然后深入剖析IPv6未替代IPv4的原因。
网络技术联盟站
2023/11/08
2.3K0
为什么IPv6还没有完全100%取代IPv4?
《21天精通IPv4 to IPv6》第4天:理解IPv6子网划分规则——如何为不同的系统划分IPv6子网?
在这篇《21天精通IPv4 to IPv6》系列的第四天,我,猫头虎博主,将带领大家深入理解IPv6子网划分的原理和在不同操作系统中的配置方法。本文内容将涵盖子网划分的理论基础、实战操作步骤,以及针对Windows、Linux、macOS和安卓的具体配置指导。文章涵盖了大量 词条,如IPv6子网、网络配置、操作系统网络设置等,旨在帮助所有级别的读者理解和实践IPv6子网划分。
猫头虎
2024/04/09
8261
《21天精通IPv4 to IPv6》第4天:理解IPv6子网划分规则——如何为不同的系统划分IPv6子网?
IPv6过渡技术
即主机和路由器在同一网络接口上运行IPv4栈和IPv6栈。这样,双栈节点既可以接收和发送IPv4包和IPv6包,因而两个协议可以在同一网络中共存
十二惊惶
2024/02/28
3230
IPv6过渡技术
《21天精通IPv4 to IPv6》第11天:IPv6中的高级路由——如何配置IPv6的高级路由? ️
在《21天精通IPv4 to IPv6》系列的第11天,我们将深入探讨IPv6中的高级路由技术。本文将详细讲解IPv6路由协议的概念、实战路由配置步骤和相关配置代码,旨在帮助读者掌握IPv6网络中高级路由的配置和管理。本篇博客包含了丰富的ip词,如IPv6高级路由、网络路由配置、IPv6路由协议,适合不同水平的读者深入理解和实践IPv6路由技术。
猫头虎
2024/04/09
3230
《21天精通IPv4 to IPv6》第11天:IPv6中的高级路由——如何配置IPv6的高级路由? ️
计网 - IPv6 协议:Tunnel 技术是什么?
IPv4 用 32 位整数描述地址,最多只能支持 43 亿设备,显然是不够用的,这也被称作 IP 地址耗尽问题。
小小工匠
2021/08/17
1.5K0
计网 - IPv6 协议:Tunnel 技术是什么?
推荐阅读
相关推荐
《21天精通IPv4 to IPv6》第7天:周综合回顾——如何实现IPv4到IPv6的平稳过渡?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档