当前位置: 首页 > news >正文

C#8.0本质论第十一章--异常处理

C#8.0本质论第十一章–异常处理

11.1多异常类型

用关键字throw抛出异常实例,所选的异常类型应该能最好地说明发生异常的背景。

11.2捕捉异常

发生异常时,会跳转到与异常类型最匹配的catch块执行,匹配度由继承链决定。

从C#6.0起,catch块支持一个额外的条件表达式。不是只根据异常类型来匹配,现在可以添加when子句来提供一个Boolean表达式,条件为true时catch块才处理异常。

要避免异常条件表达式抛出异常。

11.3重新抛出现有异常

C#5.0新增了一个机制,允许抛出之前抛出的异常而不丢失原始异常中的栈跟踪信息。这样即使在catch块外部也能重新抛出异常。

11.4常规catch块

C#要求代码抛出的任何对象都必须从System.Exception派生。

C#支持常规catch块,即catch{},其行为和catch(System.Exception exception)块完全一致,只是没有类型名或变量名,此外,必须是所有catch块的最后一个,所以在同一个try/catch块语句中,加入这两个catch块同时出现,编译器会显示一个警告消息,因为常规catch块永远得不到调用。

11.5异常处理规范

①只捕捉能处理的异常。

②不要隐藏(bury)不能完全处理的异常。

③尽量少用System.Exception和常规catch块。

④避免在调用栈较低的位置报告或者记录异常。

⑤在catch块中使用throw;而不是throw<异常对象>语句

⑥想好异常条件来避免在catch块中重新抛出异常。

⑦避免在异常条件表达式中抛出异常。

⑧避免以后可能变化的异常条件表达式。

⑨重新抛出不同异常时要小心。

a)更改异常类型课更好地澄清问题。

b)私有数据是原始异常的一部分

c)异常类型过于具体,以至于调用者不能恰当地处理。

11.6自定义异常

11.7重新抛出包装的异常

相关文章:

C#8.0本质论第十一章--异常处理

C#8.0本质论第十一章–异常处理 11.1多异常类型 用关键字throw抛出异常实例&#xff0c;所选的异常类型应该能最好地说明发生异常的背景。 11.2捕捉异常 发生异常时&#xff0c;会跳转到与异常类型最匹配的catch块执行&#xff0c;匹配度由继承链决定。 从C#6.0起&#xf…...

FPGA高端项目:图像缩放+GTP+UDP架构,高速接口以太网视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明本项目特点 2、相关方案推荐我这里已有的 GT 高速接口解决方案我这里已有的以太网方案我这里已有的图像处理方案 3、设计思路框架设计框图视频源选择ADV7611 解码芯片配置及采集动态彩条跨时钟FIFO图像缩放模块详解设计框图代码框图2种插值算法的整合与选择…...

ansible安装和常见模块

文章目录 ansible的安装1.1 yum install epel-release.noarch1.2配置epel源的baseurl1.3安装ansible1.4安装ansible报错问题1.5 yum卸载 ansible的安装 ansible是由epel源提供的&#xff0c;所以需要配置epel源。要么通过配置好的baseos源直接执行“yum install epel-release.…...

【Python基础】 Python设计模式之单例模式介绍

单例模式 1.设计模式2.单例设计模式的应用场景3.new方法4. Python 中的单例 1.设计模式 设计模式 是 前人工作的总结和提炼&#xff0c;通常&#xff0c;被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案使用 设计模式 是为了可重用代码、让代码更容易被他人理…...

算法小白的心得笔记:关于Nan

NaN 是什么 在C中&#xff0c;NaN&#xff08;Not a Number&#xff09;是一种特殊的浮点数值&#xff0c;用于表示无法表示的数值或未定义的操作&#xff0c;例如0除以0。如果你的double类型变量显示为NaN&#xff0c;那么可能是在计算过程中出现了这种未定义的操作。 如果你…...

Photoshop 2023 v24.7

Photoshop是一款强大的图像编辑软件&#xff0c;被广泛应用于图像处理、图形设计、数字绘画等领域。它提供了丰富的图像编辑功能&#xff0c;可以用于调整图像的色彩、亮度、对比度等&#xff0c;添加特效、滤镜&#xff0c;以及进行复杂的图像合成和修复。 以下是Adobe Photo…...

进程间通信(IPC)-管道、消息队列、信号量、共享存储、socket

进程间通信&#xff08;IPC&#xff0c;InterProcess Communication&#xff09;是指在不同进程之间传播或交换信息。 IPC的方式通常有管道&#xff08;包括无名管道PIPE和命名管道FIFO&#xff09;、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持…...

「Verilog学习笔记」使用generate…for语句简化代码

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 分析 generate…for语句是Verilog HDL语言特有的语句&#xff0c;使用循环结构编写可综合的多个形式相近的代码&#xff0c;循环变量必须由特定关键字genvar声明。 timesca…...

互联网Java工程师面试题·Spring篇·第七弹

目录 36、什么是基于 Java 的 Spring 注解配置? 给一些注解的例子. 37、什么是基于注解的容器配置? 38、怎样开启注解装配&#xff1f; 39、Required 注解 40、Autowired 注解 41、Qualifier 注解 42、在 Spring 框架中如何更有效地使用 JDBC? 43、JdbcTemplate 44…...

mysql驱动包引起的告警问题using SSL the verifyServerCertificate property is set to ‘false‘

tomcat启动时报以下ssl的连接错误&#xff0c;mysql版本为5.7.17&#xff0c;虽然系统可以使用&#xff0c;但是日志量太大&#xff0c;还是处理下&#xff0c;只需要修改mysql的连接格式&#xff1a; url.db “jdbc:mysql://localhost:3306/disis3?userroot&passwordXXXX…...

draw.io与项目管理——如何利用流程图工具提高项目管理效率

draw.io 是一款强大的图形绘制工具&#xff0c;用于创建各种类型的图表、流程图、组织结构图、网络图和平面设计等。它提供了丰富的绘图工具和预定义的图形库&#xff0c;使用户能够轻松创建专业水平的图形作品。 draw.io具有直观的界面和简单易用的功能&#xff0c;适合各种用…...

LoRaWAN物联网架构

与其他网关一样&#xff0c;LoRaWAN网关也需要在规定的工作频率上工作。在特定国家部署网关时&#xff0c;必须要遵循LoRa联盟的区域参数。不过&#xff0c;它是没有通用频率的&#xff0c;每个国家对使用非授权MHZ频段都有不同的法律规定。例如&#xff0c;中国的LoRaWAN频段是…...

数据结构(五):哈希表及面试常考的算法

一、哈希表介绍 1、定义 哈希表&#xff0c;也叫散列表&#xff0c;是根据关键码和值 (key和value) 直接进行访问的数据结构&#xff0c;通过key和value来映射到集合中的一个位置&#xff0c;这样就可以很快找到集合中的对应元素。例如&#xff0c;下列键(key)为人名&#xf…...

水利部加快推进小型水库除险加固,大坝安全监测是重点

国务院常务会议明确到2025年前&#xff0c;完成新出现病险水库的除险加固&#xff0c;配套完善重点小型水库雨水情和安全监测设施&#xff0c;实现水库安全鉴定和除险加固常态化。 为加快推进小型水库除险加固前期工作&#xff0c;水利部协调财政部提前下达了2023年度中央补助…...

实施电子采购的6个有效步骤

耗时又费力&#xff0c;手动采购之苦相信大家都受够了&#xff0c;现在越来越多的企业正在实施电子采购策略。根据CIPS的《2022年采购与供应数字化报告》&#xff0c;多达95%的企业在采购与供应商管理中采用了技术。 但采用技术并不能保证立竿见影的效果。企业需要制定好电子采…...

【Shell脚本6】Shell 运算符

Shell 基本运算符 Shell 和其他编程语言一样&#xff0c;支持多种运算符&#xff0c;包括&#xff1a; 算术运算符关系运算符布尔运算符逻辑运算符字符串运算符文件测试运算符 原生bash不支持简单的数学运算&#xff0c;但是可以通过其他命令来实现&#xff0c;例如 awk 和 …...

设计模式之保护性暂停

文章目录 1. 定义2. 实现保护性暂停模式3. Join原理4. 保护性暂停模式的扩展 1. 定义 即Guarded Suspension&#xff0c;用在一个线程等待另一个线程的执行结果。 有一个结果需要从一个线程传递给另一个线程&#xff0c;让他们关联到同一个GuarderObject&#xff08;这就是保…...

UE5、CesiumForUnreal实现加载GeoJson绘制单面(Polygon)功能(StaticMesh方式)

文章目录 1.实现目标2.实现过程2.1 实现原理2.1.1 数据读取2.1.2 三角剖分2.1.3 创建StaticMesh2.2 应用测试2.2.1 具体代码2.2.2 蓝图应用测试3.参考资料1.实现目标 通过读取本地GeoJson数据,在UE中以StaticMeshComponent的形式绘制出面数据,支持Editor和Runtime环境,GIF动…...

Linux 下以其他用户运行程序

需求&#xff1a; 在root的用户下&#xff0c;设置开启自启&#xff0c;这些服务都要用一个swadmin用户运行。 1、创建需要执行的命令脚本 vim /usr/local/bin/start_services.sh#!/bin/bash runuser -l swadmin -c cd /opt/server/ && ./service.sh start s-app-ser…...

Centos7下安装使用K3S

## K3S简介 K3S官方文档链接 K3s是一个轻量级的、专为容器化应用和Kubernetes集群设计的开源Kubernetes发行版。K3s的目标是提供一个更小、更简单、更易于部署和维护的Kubernetes集群。它是Rancher Labs开发的一个项目&#xff0c;旨在满足边缘计算、IoT设备、开发和测试环境…...

终极GTA5菜单指南:如何用YimMenu彻底改变你的游戏体验

终极GTA5菜单指南&#xff1a;如何用YimMenu彻底改变你的游戏体验 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimM…...

如何让窗口始终置顶?这款轻量工具让多任务处理效率提升300%

如何让窗口始终置顶&#xff1f;这款轻量工具让多任务处理效率提升300% 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 在当今数字化工作环境中&#xff0c;我们经常需要同时处理…...

2026年海南公司注册与合规服务行业评估报告

行业背景与评估维度2026年&#xff0c;随着海南自贸港全岛封关运作的正式实施&#xff0c;“零关税、低税率、简税制”的政策红利全面释放&#xff0c;海南已成为企业布局跨境业务与享受税收优惠的战略高地。然而&#xff0c;政策环境的快速迭代也带来了显著的痛点&#xff1a;…...

为什么选择UNTRUNC:深度解析开源视频修复工具的3个实战技巧

为什么选择UNTRUNC&#xff1a;深度解析开源视频修复工具的3个实战技巧 【免费下载链接】untrunc Restore a damaged (truncated) mp4, m4v, mov, 3gp video. Provided you have a similar not broken video. 项目地址: https://gitcode.com/gh_mirrors/unt/untrunc 当你…...

学习C语言的第一周

大家好啊&#xff0c;我是一名C语言编程小白。 我计划每周投入14小时学习编程&#xff0c;目标是独立写出上万行代码&#xff0c; 并凭借自己的努力&#xff0c;未来能够加入米哈游。...

双向互转|IEC104↔Modbus 工业网关,电力 / 工业现场一键通联

一、产品核心定位三格电子推出SG-IEC104-TCP与SG-TCP-IEC104两款工业级网关&#xff0c;专为电力、能源、智能制造场景打造&#xff0c;实现IEC104 与 Modbus 双向协议转换&#xff0c;兼容 DLT645 电表采集&#xff0c;支持 MQTT 上云&#xff0c;打通电力主站与现场设备的数据…...

18. 滑轮组机械效率计算

7. 滑轮组机械效率计算 功能介绍: 针对力学难点“机械效率”设计。用户设定物重、动滑轮重及提升高度,系统自动计算有用功、总功和机械效率。界面配有滑轮组示意图,动态演示绳子移动距离与物体上升距离的关系 (s=nhs=nhs=nh),帮助理解为何总功总是大于有用功以及如何提高机…...

UE Viewer终极指南:如何快速浏览和提取虚幻引擎1-4游戏资源

UE Viewer终极指南&#xff1a;如何快速浏览和提取虚幻引擎1-4游戏资源 【免费下载链接】UEViewer Viewer and exporter for Unreal Engine 1-4 assets (UE Viewer). 项目地址: https://gitcode.com/gh_mirrors/ue/UEViewer UE Viewer是一款专为虚幻引擎1-4游戏资源打造…...

基于springboot车辆管理系统设计与实现.7z(源码+论文)

[点击下载链接》》》] 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了车辆管理系统的开发全过程。通过分析车辆管理系统管理的不足&#xff0c;创建了一个计算机管理车辆管理系统的方案。文章介绍了车辆管理系统的…...

MTKClient深度应用指南:联发科设备底层调试与系统修复全解析

MTKClient深度应用指南&#xff1a;联发科设备底层调试与系统修复全解析 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient 问题诊断&#xff1a;联发科设备典型故障与解决方案 识别设备无法…...