C#带错误代码的自定义异常

C#规范整理·异常与自定义异常 前言 迄今为止,CLR异常机制让人关注最多的一点就是“效率”问题。其实,这里存在认识上的误区,因为正常控制流程下的代码运行并不会出现问题,只有引发异常时才会带来效率问题。基于这一点,很多开发者已经达成共识:不应将异常机制用于正常控制流中。达成的另一个共识是:CLR异常机制带来的“效率”问题不足以“抵消”它带来的巨大收益。 CLR异常机制至少有以下几个优点: 正常控制流会被立即中止,无效... 阅读详情

在工作中,有时需要在抛出的异常中带入错误代码,此时就需要使用自定义异常来实现。

自定义异常如下:

	[Serializable]
	internal class HoundException : Exception
	{
		public HoundException()
		{
		}

		public HoundException(int nErrorCode, string message) : base(message)
		{
			ErrorCode = nErrorCode;
		}

		public HoundException(int nErrorCode, string message, Exception innerException) : base(message, innerException)
		{
			ErrorCode = nErrorCode;
		}

		protected HoundException(SerializationInfo info, StreamingContext context) : base(info, context)
		{
		}

		public int ErrorCode { get; private set; }
	}

使用:

		private void TestFunc()
		{
			throw new HoundException(10001, "TestFunc failed.");
		}

异常的捕获:

   		catch (HoundException ex)
   		{
   			LogFile.ErrorFormat("Exception {0} - {1}", ex.ErrorCode, ex.Message);
   		}

输出:
Exception 10001 - TestFunc failed.

C#自定义异常开发指南与最佳实践 异常处理是编程语言中错误管理的核心机制,通过继承Exception基类实现类型化错误处理。在C#中,自定义异常能够封装特定业务规则的错误信息,如金融交易中的余额不足场景。其技术价值在于提供语义明确的错误分类、携带上下文数据,并通过异常过滤器实现精准捕获。在ASP.NET Core中间件和WCF服务等应用场景中,结构化异常处理能显著提升系统可维护性。本文以InsufficientBalanceException为例,详解了包含序列化支持、异常代码体系在内的企业级实现方案,并给出性能优化与单元测试的实践建议。 阅读详情

相关推荐

ST7789T3与CST816D驱动全解析,面试技巧第11篇:嵌入式面试场景问答 10 连发。

SPI模式下,SCLK、MOSI、CS、DC、RST为必需引脚;8080模式下需连接D0-D7、WR、RD等信号线。CST816D触摸芯片通常通过I2C接口通信,需连接SCL、SDA及INT(中断)引脚。确保电源引脚(VCC、GND)稳定供电,ST7789T3典型工作电压为3.3V。显示异常时检查时序参数,如SPI时钟频率(建议≤40MHz)、数据建立时间。初始化流程需发送一系列命令序列,包括设置像素格式、扫描方向、帧率控制等。扫描方向(MADCTL)可调整显示旋转角度,需根据实际硬件布局配置。

a967gsvj的博客 372

异常的概念

异常实际上是程序中错误导致中断了正常的指令流的一种事件.(你可以认为异常是任何中断 正常程序流程的错误条件)。 产生异常的条件: 1:想打开的文件不存在 2:网络连接中断 3:调用空引用 4:除0异常 。。。。 由于C#是面向对象,所有所有的错误被封装在异常对象中 一旦错误发生,将接收到一个特定的异常对象。 二、异常类 .NETFramework类库中的所有异常都派生于Exception类,异常包括系统异常和应用异 常。 默认所有系统异常派生于System.Syst...

weixin_49138855的博客 331

手把手教你用键盘在Ubuntu上给Lerobot机械臂采集HIL-SERL训练数据(附完整配置文件)

本文详细介绍了在Ubuntu系统中使用键盘控制Lerobot机械臂进行HIL-SERL训练数据采集的完整流程。从环境准备、机械臂校准到键盘遥操系统配置和数据采集优化,提供了实战指南和常见问题解决方案,帮助读者高效获取高质量训练数据,推动具身智能和强化学习应用的发展。

weixin_30733003的博客 477

C#错误和异常(五)自定义异常类

C#自定义异常类 在介绍自定义异常类之前我们先看看C#中的默认System.Exception类的元数据。 // 摘要: // 表示在应用程序执行过程中发生的错误。 [Serializable] [ClassInterface(ClassInterfaceType.None)] [ComDefaultInterface(typeof(_...

weixin_40786497的博客 1517

从FinFET到GAA:手把手解读2nm芯片制造的关键技术(含BSPDN避坑指南)

本文深入解读了2nm芯片制造从FinFET向全环绕栅极(GAA)晶体管架构演进的核心技术,并重点剖析了背面供电网络(BSPDN)的三种实现路径及其工程挑战。文章旨在帮助工程师理解技术变革的内在逻辑,并为应对2nm节点设计中的关键问题提供实用指南。

weixin_29294975的博客 292

Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)

本文详细介绍了在Ubuntu 26.04系统上通过Omnibus包安装GitLab CE的完整流程。主要内容包括:环境准备(系统要求、依赖安装)、配置清华镜像源、执行安装命令、修改配置文件、服务管理命令以及常见问题解决方法。文章特别强调了内存要求(建议4GB以上)、首次登录密码获取、HTTPS安全配置等关键点,并提供了性能优化建议和安全设置指导。相比Docker方式,Omnibus安装具有性能更好、管理方便等优势,适合需要私有化部署GitLab的场景。

1369

C# 定制错误页面

在web.config的<system.web>下加上以下配置 <customErrors mode="On" defaultRedirect="MyErrorPage.html">   <error statusCode="403" redirect="NoAccess.htm" />   <error statusCod...

LGQ943592312的博客 276

LVGL 丝滑菜单3(Silk Menu)

h。

摸鱼专家 88

c#基础之异常处理及自定义异常 从SQLServer转储数据到MySQL

c#基础之异常处理及自定义异常 一、什么是c#中的异常? 异常是程序运行中发生的错误,异常处理是程序的一部分。c#中的异常类主要是直接或者间接的派生于 System.Exception类 ,也就是说System.Exception类是所有预定义的系统异常的基类。错误的出现并不总是编写应用的程序员的原因,有的时候应用程序也会因为终端用户的操作不当而发生错误。无论如何...

605

基于STM32、HAL库的CH9434总线转UART驱动程序设计

CH9434是一款USB转4串口控制芯片,可以将单个USB接口扩展为4个独立的串口(UART)。支持多种数据格式(数据位5-8,停止位1/1.5/2,奇偶校验或无校验)// 读取接收到的数据。// 重新启动接收中断。// 向所有4个串口发送数据。// UART初始化函数示例(USART1)// 其他UART初始化函数类似...// 初始化CH9434。// 初始化UART1。// 初始化UART2。// 初始化UART3。// 初始化UART4。工作电压:3.3V/5V兼容。

corlin6688的博客 989

手把手教您如何群晖/飞牛NAS等服务器上一键部署洛雪音乐同步服务,手机电脑无缝同步歌单,支持外网访问

🎵 手机电脑歌单不同步?用Docker在群晖/飞牛NAS等服务器上搭个同步服务器, 3分钟搞定 !支持docker-compose一键部署,手机、电脑、平板收藏夹实时同步,外出也能用域名远程访问 ~ ✨

XiaoqiangClub的博客 4601

C#基础--错误和异常

这个示例称为SolicitColdCall,它包 含两个嵌套的try块,说明了如何定义自定义异常类,再从try块中抛出另一个异常。} if(!return;_fs?

不求上进的码农的博客 2313

(论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)

论文及源码见个人主页:https://download.youkuaiyun.com/download/qq_45874683/84118637?spm=1001.2014.3001.5503 (论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)4D-CRNN 目录 目录: 运行过程: 1. 运行1D文件(没有什么bug): 2. 再运行3D文件(没有出现bug): 3. 最后运行main文件(出现了两个bug)(前提需要配置好tensorflow的框架): 第一个bug是..

qq_45874683的博客 6363

C#自定义异常

C#自定义异常

10年职场两茫茫,35岁凄凉奈若何 309

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

此异常最初是在此调用堆栈中引发的_C#规范整理异常与自定义异常

这里会列举在C#中处理CLR异常方面的规范,帮助大家构建和开发一个运行良好和可靠的应用系统。前言  迄今为止,CLR异常机制让人关注最多的一点就是“效率”问题。其实,这里存在认识上的误区,因为正常控制流程下的代码运行并不会出现问题,只有引发异常时才会带来效率问题。基于这一点,很多开发者已经达成共识:不应将异常机制用于正常控制流中。达成的另一个共识是:CLR异常机制带来的“效率”问题不足以...

weixin_39985472的博客 3110

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

vs 启动调用的目标发生异常_C#规范整理异常与自定义异常

这里会列举在C#中处理CLR异常方面的规范,帮助大家构建和开发一个运行良好和可靠的应用系统。前言  迄今为止,CLR异常机制让人关注最多的一点就是“效率”问题。其实,这里存在认识上的误区,因为正常控制流程下的代码运行并不会出现问题,只有引发异常时才会带来效率问题。基于这一点,很多开发者已经达成共识:不应将异常机制用于正常控制流中。达成的另一个共识是:CLR异常机制带来的“效率”问题不足以...

weixin_39934085的博客 1256

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C#自定义异常就这么简单

C#是一种强类型语言,可以捕获和处理各种异常,从而帮助我们发现程序中出现的错误。在程序开发过程中,如果需要找到特定的错误情况并处理,这时就需要创建自定义异常。本文将介绍如何在C#中创建和使用自定义异常。1、什么是异常?异常是指在程序执行期间发生的错误或异常情况,例如除法中除以0、文件不存在、内存不足等。当发生异常时,程序会停止执行当前的操作,并抛出一个异常对象。异常对象包含有关异常...

zls365365的博客 663

如何在C#中创建和使用自定义异常

接下来我们来看看如何创建C#异常类,在C#中,创建自定义异常很简单。当发生异常时,程序会停止执行当前的操作,并抛出一个异常对象。当我们抛出一个自定义异常时,可以将更多有用的信息传递给调用者,例如错误消息、错误代码和堆栈跟踪等。例如,当用户尝试创建一个已经存在的账户时,我们可以抛出一个名为DuplicateAccountException的自定义异常。通过创建自定义异常类,我们可以更好地控制程序的行为,并提供有用的错误信息。上面代码如果是除0问题会报系统异常,而自定义异常在触发的时候报自定义异常。

风清扬的专栏 1069

建议58:用抛出异常代替返回错误代码

建议58:用抛出异常代替返回错误代码 CLR异常机制的优点: 正常控制流会被立即中止,无效值或状态不会在系统中继续传播。提供了统一的处理错误的方法。提供了在构造函数、操作符重载及属性中报告异常的遍历机制。提供了异常堆栈,便于开发者定位异常发生的位置。 不应该将异常机制用于正常控制流中,异常的发生是一个小概率事件,所以异常带来的效率问题会被限制在一个很小的范围内。异常机制带来的效率

侯文成的博客 4243

[C#]C# try catch finally异常处理(Exception)

C# 中try块可以捕获测试代码块中的错误。catch块可以处理错误。finally块无论是否try和catch块出现异常都可以执行代码。本文主要介绍C# try catch finally异常处理(Exception)。

FL1768317420的博客 1146

C# 自定义异常

1、自定义异常类 1.1为什么要自定义异常类 (1)没有具体系统异常相对应 (2)不希望在Catch块中处理 (3)希望能明确标志错误种类的异常 1.2自定义异常类定义步骤 继承自System.ApplicationException类,并使用Exception作为后缀名。 1.3自定义异常的准则 自定义异常: class MyException : ApplicationE...

weixin_30945039的博客 238

【转】编写高质量代码改善C#程序的157个建议——建议58:用抛出异常代替返回错误代码...

建议58:用抛出异常代替返回错误代码 CLR异常机制的优点: 正常控制流会被立即中止,无效值或状态不会在系统中继续传播。 提供了统一的处理错误的方法。 提供了在构造函数、操作符重载及属性中报告异常的遍历机制。 提供了异常堆栈,便于开发者定位异常发生的位置。 不应该将异常机制用于正常控制流中,异常的发生是一个小概率事件,所以异常带来的效率问题会被限制在一个很小...

dianzhuique8587的博客 105

c#根据错误代码获取错误原因

c#根据错误代码获取错误原因。

2401_82910308的博客 530
上一篇: C#动态创建类实例并动态调用指定的函数
下一篇: C# MethodInfo.Invoke捕获被调用函数的异常
Python
博客等级 码龄26年 1973粉丝 1567原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值