异常引发

当某一成员无法成功执行它应执行的操作时,将引发异常。这称为执行故障。例如,如果 Connect 方法无法连接到指定的远程终结点,则这就是一个执行故障,将有一个异常被引发。

下列准则可帮助确保在适当时引发异常。

不要返回错误代码。异常是报告框架中的错误的主要手段。

异常设计准则讨论了使用异常的许多好处。

通过引发异常来报告执行故障。如果某一成员无法按预期方式成功执行,则应将这种情况视为一个执行故障并引发一个异常。
如果代码遇到继续执行则不安全的情况,应考虑通过调用 System.Environment.FailFast(System.String)(.NET Framework 2.0 中的一种功能)来终止进程,而不是引发异常。
尽可能不对正常控制流使用异常。除了系统故障及可能导致争用状态的操作之外,框架设计人员还应设计一些 API 以便用户可以编写不引发异常的代码。例如,可以提供一种在调用成员之前检查前提条件的方法,以便用户可以编写不引发异常的代码。

下面的代码示例演示如何进行测试以防止在消息字符串为 null(在 Visual Basic 中为 Nothing)时引发异常。

   1: public class Doer
   2: {
   3:     // Method that can potential throw exceptions often.
   4:     public static void ProcessMessage(string message)
   5:     {
   6:         if (message == null)
   7:         {
   8:             throw new ArgumentNullException("message");
   9:         }
  10:     }
  11:     // Other methods...
  12: }
  13:  
  14: public class Tester
  15: {
  16:     public static void TesterDoer(ICollection<string> messages)
  17:     {
  18:         foreach (string message in messages)
  19:         {
  20:             // Test to ensure that the call 
  21:             // won't cause the exception.
  22:             if (message != null)
  23:             {
  24:                 Doer.ProcessMessage(message);
  25:             }
  26:         }
  27:     }
  28: }
  29:  
 


作者:GangWang
出处:http://www.cnblogs.com/GnagWang/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 
原文地址:https://www.cnblogs.com/GnagWang/p/1701876.html