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

C#是一种强类型语言,可以捕获和处理各种异常,从而帮助我们发现程序中出现的错误。在程序开发过程中,如果需要找到特定的错误情况并处理,这时就需要创建自定义异常。本文将介绍如何在C#中创建和使用自定义异常。

1、什么是异常?

异常是指在程序执行期间发生的错误或异常情况,例如除法中除以0、文件不存在、内存不足等。当发生异常时,程序会停止执行当前的操作,并抛出一个异常对象。异常对象包含有关异常情况的信息,例如异常类型、错误消息、堆栈跟踪等。

C# 异常处理基于四个关键字构建:try、catch、finally 和 throw。

1)try- try 块标识为其激活特定异常的代码块。它后面是一个或多个捕获块。

2)catch- 程序在程序中要处理问题的位置使用异常处理程序捕获异常。catch 关键字捕获发生的异常。

3)finally - finally 块用于执行一组给定的语句,无论是否引发异常。例如,如果打开一个文件,无论是否引发异常,都必须关闭该文件。

4)throw- 当出现问题时,程序会引发异常。这是使用 throw 关键字完成的。

2、在C#中自定义异常

接下来我们来看看如何创建C#异常类,在C#中,创建自定义异常很简单。只需要创建一个类,并从System.Exception类或其子类派生即可。例如,以下代码创建了一个名为CustomException的自定义异常类:

//创建一个没有错误消息的异常对象
public class CustomException : Exception
{
    public CustomException() { }
    //创建一个包含错误消息的异常对象。
    public CustomException(string message)
        : base(message){throw new Exception(message);}
    //创建一个包含错误消息和内部异常对象的异常对象。
    public CustomException(string message, Exception innerException)
        : base(message, innerException) { }
}

这样一个自定义异常就创建好了。

使用自定义异常类

使用自定义异常与使用内置异常类相同。只需要在程序中抛出异常对象,并使用try-catch块捕获异常即可。代码如下:

try
{
    //如果是k引发d二异常会报错系统异常
    //int i=0; int j=1;
    //int k=i/j;
    // 某些操作 下面会报自定义异常
    throw new CustomException("发生了自定义异常");
}
catch (CustomException ex)
{
    Console.WriteLine("自定义异常:"+ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("系统异常:"+ex.Message);
}
 //欢迎关注公众号:DOTNET开发跳槽,领取海量面试题。加微信号xbhpnet入群

上面代码如果是除0问题会报系统异常,而自定义异常在触发的时候报自定义异常。如下:

图片

3、自定义异常的使用场景

以上实现了自定义异常类,那么自定义异常类通常在哪些场景下使用呢?

1)检测业务规则

当我们需要检查业务规则时,可以创建自定义异常类。例如,当用户尝试创建一个已经存在的账户时,我们可以抛出一个名为DuplicateAccountException的自定义异常。

2)易于调试

通过使用自定义异常类,我们可以更好地调试代码。当我们抛出一个自定义异常时,可以将更多有用的信息传递给调用者,例如错误消息、错误代码和堆栈跟踪等。这些信息有助于调用者快速定位问题并进行修复。

结语

自定义异常是处理特定错误情况的好方法。通过创建自定义异常类,我们可以更好地控制程序的行为,并提供有用的错误信息。希望本文对你带来收获,欢迎留言和吐槽。5.1长假结束了,希望大家过完节满血复活,重回人生巅峰!!

参考:微软官方文档

版权声明:本文来源于网友收集或网友供稿,仅供学习交流之用,如果有侵权,请转告小编或者留言,本公众号立即删除。


来源公众号:DotNet开发跳槽

原文链接:https://www.cnblogs.com/xbhp/archive/2023/05/09/17384550.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#自定义异常就这么简单 - Python技术站

(0)
上一篇 2023年5月9日
下一篇 2023年5月9日

相关文章

  • C#构建树形结构数据(全部构建,查找构建)

    C#构建树形结构数据(全部构建,查找构建) 前言 树形结构数据在实际开发中非常常见,具有分级、层级、分类等特点,通常应用于目录结构、组织机构、商品分类等场景。本文将介绍如何使用C#构建树形结构数据,包括全部构建和查找构建两种方案。 全部构建 步骤一:定义数据结构 我们假设有一个数据表,包含id、parentId、name三个字段,其中id为自增主键,pare…

    C# 2023年5月31日
    00
  • C# 利用ICSharpCode.SharpZipLib实现在线压缩和解压缩

    下面我将详细讲解如何使用ICSharpCode.SharpZipLib实现C#在线压缩和解压缩,包括以下主要步骤: 引入ICSharpCode.SharpZipLib库; 压缩文件或文件夹; 解压缩文件或文件夹; 附带两个示例说明。 引入ICSharpCode.SharpZipLib库 首先,我们需要引入ICSharpCode.SharpZipLib库。在V…

    C# 2023年6月7日
    00
  • C# 生成随机数的代码

    下面是关于C#生成随机数的完整攻略: 1. C#中生成随机数的方法 C#中生成随机数可以使用System.Random类来实现。该类使用默认的种子值生成随机数,也可以指定种子值来生成不同的随机序列。常用的方法有Next()、NextDouble()和NextBytes(byte[] buffer)方法,具体用法如下: 1.1 Next()方法: Next()…

    C# 2023年5月31日
    00
  • C#实现六大设计原则之迪米特法则

    C#实现六大设计原则之迪米特法则 什么是迪米特法则 迪米特法则,也被称为最少知识原则(Least Knowledge Principle),是面向对象编程中的一个重要原则。 迪米特法则的定义为:只与你直接的朋友通信,不跟陌生人说话。 简而言之,就是一个对象应该对其他对象有尽可能少的了解。 也就是说,当我们设计一个系统时,每个对象都应该尽量减少和其他对象之间的…

    C# 2023年6月7日
    00
  • 使用VSCode开发和调试.NET Core程序的方法

    使用VSCode开发和调试.NET Core程序的方法 在本攻略中,我们将详细介绍如何使用VSCode开发和调试.NET Core程序。我们将提供两个示例说明,演示如何使用VSCode创建和调试.NET Core Web应用程序和控制台应用程序。 前置条件 在开始之前,需要确保已经安装了以下软件: .NET Core SDK Visual Studio Co…

    C# 2023年5月16日
    00
  • C# 数组实例介绍(图文)

    C# 数组实例介绍(图文)攻略 介绍 本文将介绍C#中数组的概念、语法、类型和常用操作方法,并提供多个示例以帮助读者深入理解。 数组的概念 数组是一组相同类型的变量集合,它们在内存中按照一定顺序被存储和访问。 数组的语法 以下是数组的语法: //声明一个int类型的数组,长度为5 int[] myArray = new int[5]; //直接初始化数组元素…

    C# 2023年5月31日
    00
  • C# Linq的Join()方法 – 将两个序列中的元素联接在一起

    C#中的Linq提供了Join()方法来实现两个数据源之间的连接。Join()方法接受四个参数,可以在连接过程中指定连接的条件以及返回的结果类型等信息。接下来,我将为您提供一个完整的攻略来详细讲解C# Linq的Join()方法。 Join()方法的基本语法 下面是Join()方法的基本语法: var result = from s in source1 j…

    C# 2023年4月19日
    00
  • c# 生成文字图片和合并图片的示例

    生成文字图片和合并图片是C#中常用的图像处理技术之一,下面是详细的攻略过程: 1. 创建文本图片 生成文本图片的核心步骤是利用C#内置的System.Drawing命名空间中的Bitmap和Graphics类,代码如下: // 创建 Bitmap 对象 Bitmap bmp = new Bitmap(width, height); // 创建 Graphic…

    C# 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部