2010-05-20 66 views
0

请问错误捕获代码应该放在最低级还是最高级,因为我不确定什么是最佳实践?我喜欢把底部,例如,作为用户输入的值验证和错误捕获水平

例一

public static void Main(string[] args) 
    { 
     string operation = args[0]; 
     int value = Convert.ToInt32(args[1]); 
     if (operation == "date") 
     { 
      DoDate(value); 
     } 
     else if (operation == "month") 
     { 
      DoMonth(value); 
     } 
    } 
    public static void DoMonth(int month) 
    { 
     if (month < 1 || month > 12) 
     { 
      throw new Exception(""); 
     } 
    } 
    public static void DoDate(int date) 
    { 
     if (date < 1 || date > 31) 
     { 
      throw new Exception(""); 
     } 
    } 

或实例B

public static void Main(string[] args) 
    { 
     string operation = args[0]; 
     int value = Convert.ToInt32(args[1]); 
     if (operation == "date" && (date < 1 || date > 12)) 
     { 
      throw new Exception(""); 
     } 
     else if (operation == "month" && (month < 1 || month > 31)) 
     { 
      throw new Exception(""); 
     } 
     if (operation == "date") 
     { 
      DoDate(value); 
     } 
     else if (operation == "month") 
     { 
      DoMonth(value); 
     } 
    } 
    public static void DoMonth(int month) 
    { 
    } 
    public static void DoDate(int date) 
    { 
    } 

回答

0

这取决于。输入的技术验证应在消耗方法之前完成。技术验证意味着如下内容:是否有足够的参数?也许:他们是否有正确的“类型”?

信息验证应该在解释输入之前完成。所以你符合面向对象的原则。