异常处理

1..net平台提供了一种标准的技术来发送和捕获运行时错误,结构化异常处理(SEH)。

例如,如果使用C#构建WCF服务,可以向远程调用者抛出一个SOAP错误,而使用的关键字与在同一个应用中的方法之间抛出异常的关键字完全相同。

同时,可以通过异常,他们包含容易读懂的问题描述信息和首次触发异常时调用栈的详细信息。

2.System.Exception基类

所有用户定义和系统定义的异常类都继承自该基类。System.Exception:ISerializable,_Exception;ISerializable接口允许异常跨边界(持久化)。_Exception接口允许非托管代码库处理.net异常。

3.引发普通异常

....

throw new Exception("boom,shakalaka...");

4.系统级异常

.net平台引发的异常,被认为是系统级异常,这些异常被认为是无法修复的致命错误。系统异常直接派生自System.SystemException的基类。系统级异常类,我们可以用来判断引发异常的实体是.net运行库还是正在执行的应用程序代码。(通过is关键字)

5.应用程序级异常

自定义异常应当派生自System.ApplicationException类型。

6.处理多异常

catch块按照下面的原则结构化:最前面的catch捕获最特定的异常,最后面的catch捕获最普通的异常(异常关系链中的基类),通常是Exception类。

7.再次引发异常

在catch块中,要想再次引发一个调用栈异常,只需要在catch中使用throw关键字就行了,他通过调用逻辑链传递异常。这里使用throw并没有创建新的异常对象,只是重新抛出了原始的异常对象,这样保护了原始的目标的上下文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值