当前位置: 移动技术网 > IT编程>开发语言>c# > C#异常处理详解

C#异常处理详解

2019年07月18日  | 移动技术网IT编程  | 我要评论
异常介绍 1、system.exception类 message属性:发生异常的原因和异常的内容 souce属性:抛出异常程序集的名称 stacktrace属性:发

异常介绍

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类相同的以下四个构造函数

复制代码 代码如下:

public myexception(){}

public myexception(string message){}

public myexception(string message,exception inner){}

protected myexception(system.runtime.serialization.serializationinfoinfo,system.runtime.serialization.streamingcontext context){}


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

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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网