14 错误和异常

错误和异常

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块中有几个出口点,这很有用。

猜你喜欢

转载自my.oschina.net/u/3728193/blog/1630676
14