假设我有这段代码:
public void MyMethod(string Data, List<string> InputData)
{
//I would assume throwing an exception for nulls would be correct
if (String.IsNullOrWhiteSpace(Data) || InputData == null)
throw new ArgumentNullException("Oops");
if (InputData.Count == 0)
//throw exception or use event to raise a problem
//throw Exception("Empty List")
//if (DisplayError != null)
// DisplayError("Empty List");
}
现在有一个空列表并不是一个特殊问题所以我应该优雅地应对它。一种方法是引发事件以通知问题。只是让我想知道为什么我不提出事件,如果参数为null。
此类问题的最佳做法是什么?
EventHandler示例:
public class MyOtherClass
{
public event Action<string,List<string>> ItFired;
public void DoSomething()
{
if(ItFired != null)
ItFired(myString, myList);
}
}
public class AnotherClass
{
public void DoSomething()
{
var otherclass = new MyOtherClass();
var myClass = new MyClass();
otherClass.ItFired += myClass.MyMethod;
}
}
答案 0 :(得分:4)
如果empty list
不是特殊问题 在这种情况下不引发异常。 Exceptions
适用于特殊情况。在这种情况下,您只需返回一些boolean
(比较)值,表示该函数未执行。
如果该函数的caller
是一个例外情况,那么它(调用者)将引发异常。