Csharp/C#教程:C#异常处理详解分享

异常介绍

1、System.Exception类

Message属性:发生异常的原因和异常的内容

Souce属性:抛出异常程序集的名称

StackTrace属性:发生异常的方法调用情况

InnerException属性:次异常中包含的异常

2、try{}catch{}finally{}

处理异常

a、不带参数的catch和catch(Exception)是有区别的

catch(Exception)可以捕获所有以Exception类派生的异常,而不带参数的catch可以捕获所有异常,不管异常是不是从Exception类派生。

b、与catch配套的catch和finally是可选的,但二者必选其一。一个try可对应多个catch,但一个try只能对应一个finally。

c、不论try中是否发生异常,finally中的语句一定会被执行。

异常传播

如果异常发生后,没有被相应的catch捕获,那么异常将沿调用堆栈逐渐向上传递,直到遇到合适的catch语句或传递到最底层的调用方法为止。如都没有找到相应的catch,则异常交付.net公共语言运行时,公共语言运行时弹出一个对话框来显示异常信息。

抛出异常throw

1、throw变量名;

必须是Exception异常或有Exception派生的类型

2、throw;

这个throw语句只有一个throw关键字,只能用在catch语句块中,该语句的意思是抛出当前catch语句所捕获的异常。

自定义异常

遵循原则

1、避免使用深的异常类继承层次结构

2、自定义异常类必须继承System.Exception类或其他几种基本常见异常类

3、自定义异常类名称要以Exception结尾

4、自定义异常类应该可以序列化

5、自定义异常类应该至少实现与Exception类相同的以下四个构造函数
代码如下:
publicMyException(){}

publicMyException(stringmessage){}

publicMyException(stringmessage,Exceptioninner){}

protectedMyException(System.Runtime.Serialization.SerializationInfoinfo,System.Runtime.Serialization.StreamingContextcontext){}

6、自动插入自定义异常类框架

在编辑器中输入Exception并按键,即可得到自定义异常类框架。

上述就是C#学习教程:C#异常处理详解分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)! 您可能感兴趣的文章:c#使用多线程的几种方式示例详解C#队列Queue多线程用法实例C#中的多线程多参数传递详解c#多线程网络聊天程序代码分享(服务器端和客户端)浅谈C#多线程简单例子讲解C#实现多线程下载文件的方法C#多线程处理多个队列数据的方法C#异常处理中try和catch语句及finally语句的用法示例C#异常处理

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/904972.html

(0)
上一篇 2021年10月22日
下一篇 2021年10月22日

精彩推荐