private static char[] ReadSource(string filename) { FileInfo file = new FileInfo(filename); int length = (int)file.Length; char[] source = new char[length]; TextReader reader = file.OpenText(); reader.Read(source, 0, length); reader.Close(); return source; } } 在转化过程中,需要注意以下几点: 1.以前使用数字作为错误代码来描述错误(很失败的一种做法,谁知道2342是什么意思呢?),现在使用命名的异常类来描述(例如:SecurityException)。 2.异常类彼此之间的关系并没有紧密的联系在一起。相反的,用来描述某一类错误的整数代码在整个错误描述代码中必须是唯一。 3. 在ReadSource方法中没有没有抛出详细说明。在C#中抛出说明并不是必须的。 然而,最值得注意是:比较两段代码,ReadSource变得非常的清晰、简单、明了。它现在仅包含需要实现其基本功能的语句,没有表现出明显的错误处理。这是可以的,因为如果出现异常,调用堆栈就会自我展开。这个版本是我们想要的“理想”版本。 然而,异常允许我们接近这个ReadSource的理想版本,同时,又阻止我们到达它。ReadSource是一个编码例子,它请求资源(一个TextReader),使用了资源(Read),并且释放了资源(Close)。 问题是如果在请求资源的过程中出现了异常,那么资源将不会被释放。这个问题的解决是本文的一部分。不过,“理想“中的ReadSource版本仍然是有用的。我们将使用它做为下面几个版本的ReadSource评价的参照物。 |
正在阅读:C#中的异常处理(一)C#中的异常处理(一)
2004-02-14 09:34
出处:PConline
责任编辑:linjixiong
键盘也能翻页,试试“← →”键