假设一个简单的示例,其中方法检索一个集合(例如包含一些配置字符串的列表)并尝试以某种方式检查它:
void Init()
{
XmlDocument config = new XmlDocument();
config.Load(someXml);
var list = config.SelectNodes("/root/strings/key"); // Normally, list should not be null or empty
if (list == null || list.Count == 0)
throw new SomeExceptionType(message); // What kind of exception to throw?
// Iterate list and process/examine its elements
foreach (var e in list) ...
}
在此特定实例中,如果没有检索到任何内容,该方法将无法正常继续。我不确定在这种情况下要抛出什么异常类型。据我所知,我的选择是:
手动抛出任何东西并让其
NullReferenceException
自动抛出(不处理空列表情况),抛出自定义异常类型(可能不是一个好主意,因为我预计调用者不会尝试对异常做任何事情,即他不会寻找要处理的特定异常类型),
- 做别的事?