错误和异常
14.2 异常类
图14-1(373)性能
- SystemException——该类用于一般由.NET运行库抛出的异常,或者由几乎全部的应用程序抛出的异常。SystemException异常的子类包括表示致命错误和非致命错误的异常。
- ApplicationException——最初的设计是做为自定义应用程序异常类的基本类,CLR抛出的一些异常也派生自这个类。从ApplicationException派生自定义异常没有任何好处。若是须要自定义异常类,从Exception基类派生自定义异常类。
- StackOverflowException——栈中的内存区域已满,抛出这个异常。
- EndOfStreamException——一般是读到文件末尾而抛出,流表示数据源之间的数据流。
- OverflowException——若是要在checked环境下把包含-40的int类型数据强制转换为uint数据,就会抛出这个异常。
14.3 捕获异常
```
try
{
}
catch
{
}
finally
{
}
```
- 能够省略finally
- 能够由多个catch,过多会下降性能。
- 能够自定义过滤器,其中包含catch块仅在过滤器匹配时,捕获特定块中的异常。
- 能够省略catch块——此时,该语法不是标识异常,而是一种确保程序流在离开try块后执行finally块中的代码的方式。若是在try块中有几个出口点,这颇有用。