メソッドがコレクション (いくつかの構成文字列を含むリストなど) を取得し、何らかの方法でそれを調べようとする単純な例を考えてみます。
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
ず、自動的にスローされるようにします (空のリストの状況を処理しません)。カスタム例外タイプをスローします (おそらく、呼び出し元が例外について何かをしようとは思わないため、良い考えではありません。つまり、呼び出し元は、処理する特定の例外タイプを探しているわけではありません)。
- 何か他のことをしますか?