eEhdsa

C# Exception整理...

1, 整体模式
Exceptions
PS:以上所有异常都在system命名空间里,除了IOException及其派生Excpetion在system.IO内
从图中可以看出异常主要分为2类,SystemException和ApplictaionException
SystemException:通常有.Net运行库生成
ApplictaionException:是用户定义异常的基类,可用于定义应用程序一些独有的异常

2, SystemException
大部分都可以由其名字猜出作用
StackOverflowException:这样的异常往往发生在递归以及死循环,造成分配给堆栈的内存区域已满,这种情况下甚至不会执行finally区域。
OverflowException:比如checked环境下要把-40的int转换为uint数据, 其基类即为计算异常基类。
其他的看单词基本就能猜到了

3,ApplicationException
public class PageCannotFindException : ApplicationException
{
public PageCannotFindException(string pageName)
: base("Cannot find page: " + pageName)
{
}
public PageCannotFindException(string pageName, Exception innerException)
: base("Cannot find page: " + pageName, innerException)
{
}
}
上面是一个简单的用户异常类

而是用的时候也是基本跟预定义的一样
捕获:
try
{
...
}
Catch(PageCannotFindException  ex)
{
...
}

抛出:
Catch(Exception ex)
{
throw new PageCannotFindException(pageName, ex);
}

posted on 2009-09-24 11:58  eEhdsa  阅读(3538)  评论(0编辑  收藏  举报

导航