C#中的异常处理最佳实践

时间:2016-05-03 15:23:06

标签: c# exception-handling

我有一个关于在调用方法和被调用方法中冗余处理异常的问题。请考虑以下示例:

protected void method1(string action)
{
  if (string.IsNullOrWhiteSpace(action))
  {
    throw new ArgumentException("action cannot be null or empty or white space.");
  }
  //do something
}

public void method2(string name, string action)
{
  if (string.IsNullOrWhiteSpace(name))
  {
    throw new ArgumentException("name cannot be null or empty or whitespace.");
  }
   method1(action);
  //do something
}

在上面的例子中,我是否还要在method2中检查操作是否为空?我觉得因为它是在方法1中处理的,所以我不必处理它,因为它可能导致冗余代码。

任何建议对于了解异常处理最佳实践都有很大帮助。感谢

2 个答案:

答案 0 :(得分:2)

如果您的method1是[{1}} private internal的实施,并且只能由method2调用,则您不需要对这两种方法都设置了论据保护。

答案 1 :(得分:-2)

我经常检查。我知道代码如何工作现在,但我不知道它将来会做什么。代码会改变;用我的手或别人的。不检查的代码是等待爆炸的定时炸弹。