异常引发
当某一成员无法成功执行它应执行的操作时,将引发异常。这称为执行故障。例如,如果 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/
            
            本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
        
                
            
        
浙公网安备 33010602011771号