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#类异常处理内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#异常处理的技巧和方法

    c#中或多或少回出现一些意向不道的异常,那么如何去捕获这个异常就非常的关键--这个异常可能是系统的不可控因素也有可能是程序本身才一个异常.下面就具体的解决方案提供给大家,希望有所帮助 从最常见的分母为0的情况的实例 通过try catch finally三个关键字的一个语法结构图.finally是监听程序是否在try或者catch中执行 下面列举的是try执行的语句是一个异常错误的情况 下面列举的是try执行语句是一个正确的情况 异常类的一个继承顺序图,异常类中的属性列表 catch中的表达式的

  • C#异常处理知识汇总

    概念 异常处理是指程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常 但并不是所有的错误都是异常 而处理这种错误,称为异常处理 异常处理实际是不断去发掘异常.修改异常,使程序更稳定 异常处理主要表现在四个方面: 1 程序开发前:尽可能的想到会发生的错误,标注怎么处理应对 2 程序开发中:尽量暴露程序的问题,解决这些可能的异常 3 系统发布后:尽可能的解决隐藏的或测试人员未测试到的程序问题 4 发生异常时:异常代码转化成了友好提示显示给用户 异常分类 编译错误 1 大小写混淆 2 数据

  • 轻松学习C#的异常处理

    异常是程序运行中发生的错误,异常处理是程序设计的一部分.错误的出现并不总是编写应用程序者的原因,有时候应用程序会因为终端用户的操作发生错误.无论如何,在编写程序前,都应该预测应用程序和代码中出现的错误.一般良好的编程规范也会避免一些不必要的程序错误的出现.         在项目的开发过程中,并不是所有的代码执行都和想象那样理想,总是避免不了异常的发生.这就需要编程语言的去处理这些异常,C#语言中有三种异常处理语句:         try...catch;//处理异常         try.

  • c#异常处理示例分享

    复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq; using System.Text;//2014.3.14namespace _6.异常{    class Program    {        static void Main(string[] args)        {            try            {                Console.WriteLi

  • C#多线程中的异常处理操作示例

    本文实例讲述了C#多线程中的异常处理操作.分享给大家供大家参考,具体如下: 常规Thread中处理异常 使用Thread创建的子线程,需要在委托中捕捉,无法在上下文线程中捕捉 static void Main(string[] args) { ThreadStart threadStart = DoWork; Thread thread = new Thread(threadStart); thread.Start(); thread.Join(); } static void DoWork()

  • C#中类的异常处理详解

    目录 前言 异常 寄语 总结 前言 日常编码过程中,最重要的技能不是说你学会使用很多最新的编程技术或者做出一个高大上的系统.而是你在写代码过程中,对异常的处理,是否系统可以稳定,健壮. 对于异常的处理在C#中是通过try/cath机制来捕获的,接下来我们一起来看看. 异常是程序中的运行时错误,它违法了系统约束或应用程序约束,或出现了在正常操作时未预料的情形. 比如对于某些变量的非正常赋值或者在参与运算操作时出现错误等. 异常 关于异常,在C#中通过try语句和处理异常机制类保证异常的捕获,防止由

  • 基于java Servlet编码/异常处理(详解)

    1. Servlet输出中文 (1)为什么会有乱码? out.println方法在输出时或者表单提交的时候,浏览器会对表单中的中文参数值进行编码; 注:会使用表单所在的页面打开时使用的编码方式进行编码服务器端默认会使用ISO-8859-1进行解码所以会产生乱码 (2)如何解决? 1)post请求:requset.setcharcterencoding(string charset);添加到所有获取参数前并且该方法只支持post方法 2)get请求:修改服务器设置 2. 读取请求参数值 (1)St

  • SpringBoot 统一异常处理详解

    代码结构 配置pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/

  • Django REST 异常处理详解

    异常 异常处理-允许错误处理在程序结构的中心或者高层级的地方被清晰有条理的组织起来. Exceptions- allow error handling to be organized cleanly in a central or high-level place within the program structure. - Doug Hellmann, Python Exception Handling Techniques Rest框架视图中的异常处理 Exception handling

  • C/C++中异常处理详解及其作用介绍

    目录 概述 异常处理 异常处理机制 函数声明指定异常 练习 案例一 案例二 概述 作为一名专业写 Bug, 编程一天改 bug 一周的程序媛. 学会异常处理是非常重要的. 我们不仅要考虑没有错误的理想情况, 更要考虑存在错误时的情况. Debug 可以帮助我们尽快发现错误, 消除错误. 错误类别: 语法错误 运行错误 逻辑错误 异常处理 设计程序时, 事先分析程序运行时可能出现的各种意外情况, 定制出相应的处理方法. 异常处理指对运行时出现的差错以及其他例外情况的处理. 没有异常处理程序时, 运

  • java基础检查和未检查异常处理详解

    程序在运行时如果出错,编译器会抛出异常,异常如果没有被捕捉处理,程序会终止运行.异常分为未检查异常和已检查异常,以下对这两类异常做进一步说明. 检查异常 已检查异常(checked exceptions),编译器强制要求捕获并处理可能发生的异常,不处理就不能通过编译,如:IOException.SQLException以及用户自定义的Exception异常.如下图所示,程序运行时会因为IO等错误导致异常,要求处理异常,需要手动处理关闭释放资源. 继续抛出,通过throws exception抛出

  • Python学习之异常处理详解

    目录 什么是异常与异常处理 异常的语法 捕获通用异常 捕获具体异常 如何捕获多个异常 捕获多个异常-方法1 捕获多个异常-方法2 本章节主要学习 python 中的异常处理,来看一下该章节的内容有哪些.首先我们需要了解 什么是异常与异常的处理 ,然后再继续 异常的语法结构 什么是异常与异常处理 异常 —> 可以理解为不同寻常. 正常情况下,我们的程序是自上而下的逐行执行,执行到最后一行才会终止程序的执行.而异常的情况会导致我们的程序半途而废停止了执行.一般情况下的停止执行都是因为我们的程序出错而

  • kotlin 协程上下文异常处理详解

    目录 引言 一.协程上下文 1.CoroutineContext 2.CorountineScope 3.子协程继承父协程 二.协程的异常传递 1.协程的异常传播 2.不同上下文(没有继承关系)之间协程异常会怎么样? 3.向用户暴露异常 三.协程的异常处理 使用SupervisorJob 异常捕获器CoroutineExceptionHandler Android中全局异常的处理 引言 从前面我们可以大致了解了协程的玩法,如果一个协程中使用子协程,那么该协程会等待子协程执行结束后才真正退出,而达

  • C++之异常处理详解

    程序中的错误分为编译时的错误和运行时的错误.编译时的错误主要是语法错误,比如:句尾没有加分号,括号不匹配,关键字错误等,这类错误比较容易修改,因为编译系统会指出错误在第几行,什么错误.而运行时的错误则不容易修改,因为其中的错误是不可预料的,或者可以预料但无法避免的,比如内存空间不够,或者在调用函数时,出现数组越界等错误.如果对于这些错误没有采取有效的防范措施,那么往往会得不到正确的运行结果,程序不正常终止或严重的会出现死机现象.我们把程序运行时的错误统称为异常,对异常处理称为异常处理.C++中所

  • MVC异常处理详解

    在日常开发中,我们会去捕捉很多的异常,来进行处理,通常我们的方法就是,在需要进行异常处理的地方加上 try catch 块,但是,如果需要异常处理的地方很多,那么,就会频繁的去写try catch 块,对于我们天生'懒惰' 的程序员来说,总想找一个捷径.于是,就会有全局异常处理,那么,今天,我们就来看看在MVC中怎么进行全局异常处理的. 一.MVC框架自己的全局异常处理 在MVC中,框架已经给我们一共了一套全局异常处理的特性类HandleErrorAttribute类.我们可以在MVC中的App

随机推荐