时间:2021-05-20
异常介绍
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并按键,即可得到自定义异常类框架。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言:上篇C#进阶系列——WebApi接口传参不再困惑:传参详解介绍了WebApi参数的传递,这篇来看看WebApi里面异常的处理。关于异常处理,作为程序员的我
目录Emit异常处理流程显示Exception对象的Message属性返回目录Emit异常处理流程来看这种C#异常处理代码:复制代码代码如下:staticvoi
C#异常处理总结及简单实例一、异常处理的理解?异常处理是指程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常。因此处理这种错误,就称为异常处理。二、
C#动态创建button按钮的方法实例详解C#编程中经常需要动态创建,本文主要介绍C#动态创建button按钮的方法,涉及C#按钮属性动态设置的相关技巧,以供借
Java异常处理运行时异常(RuntimeException)详解及实例RuntimeExceptionRunntimeException的子类:ClassCa