Archive for 十二月 12th, 2009

星期六 十二月 12, 2009 19:00

cSharp中异常处理的笔记

停了几天的笔记。感觉学习的内容要么像反射(Reflection in .net framework)一样高深,想写点笔记却怎么也写不上;要么学习的内容(像集合、泛型,泛型集合、Language Integrated Querry)太细太杂,可写的太多,想记都记不过来。看到了.net 中的异常处理,总算,让我开始有点想法了。我总结了下面的几个问题:
1.执行多个catch 块,讲究一个顺序:从最特殊到最一般。下面的代码是我写的一个demo,模拟了3种异常:一种是用户的输入超过了规定值后,抛出了一个IndexOutOfRangeException,另一种是很普适的System.Exception,最后一种是不带参数的catch,它可以处理非托管堆上的代码异常(包括非c# 的代码)。以这样的顺序布局,才能够细致的捕获到各个可能出现的问题。但,如果将System.Exception 的catch 放到最前面,编译器就会报错:“上一个 catch 子句已经捕获了此类型或超类型(“System.Exception”)的所有异常”,因为IndexOutOfRangeException是从System.Exception 里继承过来的。当然要体会这样布局的真正优势,需要一些彪悍的异常处理方法,而不是一个简单的Writeline().
错误 1 上一个 catch 子句已经捕获了此类型或超类型(“System.Exception”)的所有异常 H:\vsProject\Lab\learningLab\learningLab\Programe.cs 28 20 learningLab
public static void Main()
{
int aNum;
[...]

calendar

2009年十二月
« 十一   二 »
 123456
78910111213
14151617181920
21222324252627
28293031  

最近评论