正在阅读:C#中的异常处理(一)C#中的异常处理(一)

2004-02-14 09:34 出处:PConline 作者:ivsee/CSDN 责任编辑:linjixiong

  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评价的参照物。

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品