事实上,许多面向对象的构造——构造器,获取和设置属性,添加和删除事件,调用操作符重载和调用转换操作等等(我们在写代码的时候总是想当然的写一大串,但是要知道很多代码只是在理想状态下没有任何操作失败才可能执行)
由于异常基础部分已经十分明了,所以这里就不一一赘述,只是简单阐述一些之前没有注意到的地方####**:**catch()的这个圆括号中的表达式称为捕捉类型。C#要求它必须是System.Exception或者它的派生类
- 一旦CLR找到匹配的catch块,就会执行内层所有finally块中的代码。注意与catch块匹配的finally块还没有执行,等到catch块执行完毕之后才会执行。
一个try块只能有一个finally块
基类的异常主要作用是将大量的异常错误当做一个错误,这是很危险的。
设计规范和最佳实践
- 不要什么异常都捕捉,捕捉异常是表明你已经预见到该异常,理解他为什么发生,并指导如何处理它的时候,才会捕捉异常。
- ‘catch
{
throw;
}’这段话会捕捉所有异常,就好比QQ软件,其实内部是会有很多的bug,但是当bug发生的时候,它并不会显示抛出这种异常,而是在内部消化,而开发人员却会收到异常错误通知