C#异常处理总结及简单实例

C#异常处理总结及简单实例

本文介绍C#中异常处理的相关知识,包括什么是异常、异常的分类、异常的捕获和处理、如何自定义异常等内容,并通过示例代码进行演示说明。

什么是异常

在C#中,异常是指在程序运行时某些意料之外的问题导致程序无法继续执行的情况。比如:代码中试图打开不存在的文件,或是试图进行无效的计算等。在这些情况下,程序会抛出一个异常,来提示程序员有错误出现。

异常分类

在C#中,异常可以分为两类:系统异常和自定义异常。

系统异常

系统异常是由.NET框架代码中的错误情况引起的异常,比如:

  • NullReferenceException(空指针异常):当试图引用一个空对象的成员时,会引发该异常。
  • IndexOutOfRangeException(索引超出范围异常):试图使用一个不存在于数组中的索引访问数组时,会引发该异常。

自定义异常

自定义异常是程序员根据自己的需要定义的异常,它可以帮助程序员更好地管理程序中的异常情况。

定义自定义异常的语法如下:

class MyException : Exception
{
    public MyException(string message) : base(message)
    {}
}

可以通过继承Exception类来定义自己的异常类,也可以通过构造函数和属性来扩展Exception类的功能。

异常的捕获和处理

C#中可以使用try-catch语句来捕获和处理异常。try语句块包含可能引发异常的代码,catch语句块处理异常。一个catch块可以捕获一个或多个异常,语法如下:

try
{
    // 可能引发异常的代码
}
catch (ExceptionType1 e)
{
    // 处理 ExceptionType1 类型的异常
}
catch (ExceptionType2 e)
{
    // 处理 ExceptionType2 类型的异常
}

在上面的代码中,如果try块的代码引发了ExceptionType1类型的异常,那么第一个catch块会被执行,如果引发了ExceptionType2类型的异常,那么第二个catch块会被执行。

下面是一个通过try-catch语句来处理除零异常的示例代码:

using System;

class Program
{
    public static void Main()
    {
        int dividend = 20;
        int divisor = 0;
        int result = 0;

        try
        {
            result = dividend / divisor;
        }
        catch (DivideByZeroException ex)
        {
            Console.WriteLine("不能除以0。错误信息:{0}", ex.Message);
        }

        Console.WriteLine("结果是:{0}", result);
    }
}

在上面的代码中,试图将20除以0,会引发DivideByZeroException异常,程序会捕获该异常并输出错误信息“不能除以0。”

自定义异常示例

下面是一个自定义异常的示例代码,该异常类用于检查温度是否在正常范围内:

using System;

class TemperatureOutOfRange : Exception
{
    public TemperatureOutOfRange(string message) : base(message)
    {}
}

class Program
{
    static void Main(string[] args)
    {
        try
        {
            CheckTemperature(150);
        }
        catch (TemperatureOutOfRange ex)
        {
            Console.WriteLine(ex.Message);
        }
    }

    static void CheckTemperature(int temperature)
    {
        if (temperature > 100 || temperature < 0)
        {
            throw new TemperatureOutOfRange("温度超出范围");
        }
        else
        {
            Console.WriteLine("温度正常");
        }
    }
}

在上面的代码中,当温度超出了0到100的范围时,程序抛出TemperatureOutOfRange异常,示例代码捕获异常并输出错误信息“温度超出范围”。

总结

本文介绍了C#异常处理的相关知识,包括什么是异常、异常的分类、异常的捕获和处理、如何自定义异常等内容。在实际开发中,合理处理异常可以提高程序的稳定性和可靠性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#异常处理总结及简单实例 - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月6日

相关文章

  • C# WinForm 登录界面的图片验证码(区分大小写+不区分大小写)

    下面是详细讲解 “C# WinForm 登录界面的图片验证码(区分大小写+不区分大小写)” 的完整攻略: 1. 准备工作 在开始编写代码前,我们需要准备以下工作: 安装开发环境 Visual Studio,并创建一个 WinForm 程序 准备一张用于生成验证码的图片 2. 编写生成验证码的代码 我们可以通过 System.Drawing 命名空间下的 Gr…

    C# 2023年6月8日
    00
  • C#使用EF连接PGSql数据库的完整步骤

    概述 C# 是一种广泛使用的编程语言,EF(Entity Framework) 是一种数据访问技术,用于在 C# 中从数据库中检索、更新和操作数据。PGSql 是一种开源的关系型数据库。 在这篇文章中,我将带你了解如何使用 Entity Framework 与 C# 连接 PGSql 数据库的完整步骤。 步骤 以下是完整的步骤: 2.1. 安装 NuGet …

    C# 2023年6月1日
    00
  • 模拟人生4怎么复活死去的人物 复活死去人物的方法

    模拟人生4怎么复活死去的人物:完整攻略 在模拟人生4中,如果你的人物不幸“去世”,可以通过以下两种方法将他们复活: 方法一:使用“消费者保障” 在游戏中按下CTRL+Shift+C,弹出命令输入框,在其中输入testingcheats true,使得测试命令成为可用状态。 按下CTRL+Shift+C打开命令框,输入“cas.fulleditmode”(不带…

    C# 2023年6月6日
    00
  • ASP.net百度主动推送功能实现代码

    关于“ASP.net百度主动推送功能实现代码”的攻略,我可以为您提供以下内容: 什么是ASP.net百度主动推送? ASP.net百度主动推送(ASP.NET Baidu auto push)是指在网站更新后,通过代码实现将最新的页面信息主动向百度搜索引擎提交,从而使得百度更快地收录您网站的最新内容,并提供更好的搜索结果。ASP.net百度主动推送有利于SE…

    C# 2023年5月31日
    00
  • C# 设置Chart的X轴为时间轴​​​​​​​详情

    下面是关于C#设置Chart的X轴为时间轴的完整攻略: 步骤一:添加 NuGet 包 在 Visual Studio 中打开相应的项目,右键单击项目并选择“管理 NuGet 包”。在 NuGet 界面的搜索栏中输入“System.Windows.Forms.DataVisualization”,选择“System.Windows.Forms.DataVisu…

    C# 2023年6月1日
    00
  • ASP.NET Core MVC 从入门到精通之HttpContext

    随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NET Core MVC 系统开发的人员。 经过前几篇文章的讲解,初步了解ASP.NET Core MVC项目创建,启…

    C# 2023年5月4日
    00
  • C#定时任务框架Quartz.NET介绍与用法

    C#定时任务框架 Quartz.NET 介绍与用法 Quartz.NET 是一个强大的、开源的定时任务调度框架,它可以用于 C# 编程语言中。 框架介绍 Quartz.NET 与 .NET Framework 完美结合,允许开发人员在自己的应用程序中创建并组织复杂的、企业级的定时任务调度系统。它被广泛应用于金融、电信、物流等领域,可以帮助开发人员在开发定时任…

    C# 2023年5月31日
    00
  • C#中Arraylist的sort函数用法实例分析

    C#中ArrayList的Sort函数用法实例分析 简介 C#中的 ArrayList 是一个动态数组,可以动态地增加或删除数组的元素,不需要提前设置数组的大小。同时,ArrayList 还提供了 Sort 方法来进行元素的排序。Sort 方法是利用快排来完成排序操作的。接下来,我们将详细讲解 C# 中 ArrayList 的 Sort 函数的使用方法。 S…

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