C#中类的异常处理详解

 更新时间:2022年02月16日 09:58:04   作者:Andy阿辉  
大家好,本篇文章主要讲的是C#中类的异常处理详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

前言

日常编码过程中,最重要的技能不是说你学会使用很多最新的编程技术或者做出一个高大上的系统。而是你在写代码过程中,对异常的处理,是否系统可以稳定,健壮。

对于异常的处理在C#中是通过try/cath机制来捕获的,接下来我们一起来看看。

异常是程序中的运行时错误,它违法了系统约束或应用程序约束,或出现了在正常操作时未预料的情形。

比如对于某些变量的非正常赋值或者在参与运算操作时出现错误等。

异常

关于异常,在C#中通过try语句和处理异常机制类保证异常的捕获,防止由于异常的未捕获导致整个程序出现异常提醒,甚至出现崩溃。

异常的要求

try块包含为避免出现异常而被保护的代码

catch子句部分含有一个或多个catch子句。(处理异常代码段也叫做异常处理子程序)

finally块含有在所有情况下都要被执行的代码,无论有没有异常发生

class Program
{
    static void Main(string[] args)
    {
        try
        {
            //验证是否有异常的代码
            Ahui hui = new Ahui();
            InfoBase info = (InfoBase)hui;

            Console.WriteLine(hui.GetInfo());
            Console.WriteLine(info.GetInfo());
        }
        catch (Exception ex)
        {
            //捕获异常,进行异常的处理

            throw new Exception("异常向上一层抛出!");
        }            
        Console.ReadKey();
    }
}

在处理业务代码时,必须在刚开始就将逻辑上的错误都考虑清楚进行验证处理,比如判空,非正常值,值类型错误等。

其次在通过try/catch机制来捕获非正常的异常,防止程序出现无法把控的错误,导致奔溃。

提示:在业务程序中尽量少用异常进行捕获,如果条件满足要第一时间对异常进行前期处理。<Catch()中的异常处理时间会比较长,而且会导致系统资源被浪费(异常实时被往上抛出)。>

在C#中有很多不同类型的异常可能被发生,BCL定义了许多类,每一个类代表一个指定的异常类型。当一个异常发生时,CLR首先创建该类型的异常对象,其次寻找适当的catch子句以处理它。(所有的异常类都派生自System.Exception类)

关于catch()有三种形式,可以处理不同级别的异常。

第一种 一般异常处理

   try
   {

   }
   catch
   {
       //一般异常处理
       
   }

能接受任何异常,但不能确认引起异常的类型。可对可能发生的异常进行普通处理和清理。

第二种 特定异常处理

    try
    
    }
    catch(Exception)
    {
        //特定异常处理
        
    }

把一个异常类的名称作为参数,匹配该指定类或派生自它的异常类的异常。

第三种 带对象的特定异常处理

    try
    
    }
    catch(Exception ex)
    {
        
      throw new Exception(ex.Message);
    }

可提供关于异常的多种异常信息,匹配指定的异常或派生自它的异常类的异常。通过异常实例,可得到异常的详细信息。

    try
    
    }
    catch (Exception ex)
    {
        //特定异常处理
        throw new Exception(ex.Message);
    }
    finally { 
        //出现异常后的处理机制

    }

这里需要特别说明下,关于finally中的代码,不管异常是否被捕获,它都会被执行。

在finally中适合存放释放资源或后续处理的代码。

基础知识日更已经29天,如果大家还想继续,可以给个关注,感谢您的支持。

寄语

人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。

总结

到此这篇关于C#中类的异常处理详解的文章就介绍到这了,更多相关C#类异常处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中哈希表(HashTable)用法实例详解(添加/移除/判断/遍历/排序等)

    C#中哈希表(HashTable)用法实例详解(添加/移除/判断/遍历/排序等)

    这篇文章主要介绍了C#中哈希表(HashTable)用法,简单讲述了哈希表的原理并结合实例形式详细分析了C#针对哈希表进行添加、移除、判断、遍历、排序等操作的实现技巧,需要的朋友可以参考下
    2016-06-06
  • c# 实现窗体拖到屏幕边缘自动隐藏

    c# 实现窗体拖到屏幕边缘自动隐藏

    让窗体拖到屏幕边缘自动隐藏的原理,通过Form1_LocationChanged的方法,当窗体位置发生改变时,判断其是否在屏幕边缘,在则隐藏。再通过Timer控件经过指定时间判断出鼠标的位置,若鼠标在屏幕左边、上边或右边,这根据窗体的位置,调出窗体。
    2009-02-02
  • C#简单配置类及数据绑定

    C#简单配置类及数据绑定

    这篇文章主要介绍了C#简单配置类及数据绑定,原理比较简单,适用于一些小型项目。主要实现保存配置到json文件、从文件或实例加载配置类的属性值、数据绑定到界面控件的功能,需要的朋友可以参考一下
    2021-11-11
  • 详解C#数据类型及其转换

    详解C#数据类型及其转换

    这篇文章主要介绍了C#数据类型及其转换详解,在C#中,数据类型可以分为几种类型,今天小编通过本文给大家详细介绍,需要的朋友可以参考下
    2020-07-07
  • C#编程中枚举类型的使用教程

    C#编程中枚举类型的使用教程

    这篇文章主要介绍了C#编程中枚举类型的使用,是C#入门学习中的基础知识,需要的朋友可以参考下
    2016-01-01
  • C#实现绘制面形图表的方法详解

    C#实现绘制面形图表的方法详解

    这篇文章主要介绍了C#实现绘制面形图表的方法,对于C#初学者很好的掌握C#图形绘制有一定的借鉴价值,需要的朋友可以参考下
    2014-07-07
  • C#利用反射实现多数据库访问

    C#利用反射实现多数据库访问

    本文详细讲解了C#利用反射实现多数据库访问的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C#自定义的字符串操作增强类实例

    C#自定义的字符串操作增强类实例

    这篇文章主要介绍了C#自定义的字符串操作增强类,涉及C#操作字符串实现分割、转换、去重等常用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • C# winformTextBox 键盘监听方式

    C# winformTextBox 键盘监听方式

    这篇文章主要介绍了C# winformTextBox 键盘监听方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • C#实现QQ窗口抖动效果

    C#实现QQ窗口抖动效果

    这篇文章主要为大家详细介绍了C#实现QQ窗口抖动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11

最新评论