在这里,我向一个字典
中添加了一些内容:
dictionary.Add(dictionaryKey, value);
如果
dictionaryKey
已经存在,将抛出一个 ArgumentException
。它的提示信息相当通用:
如果我的对已添加具有相同键的项。
dictionary.Add
的调用在循环或辅助函数内部,则很难立即确定是哪个键已经被添加而导致此异常。我希望尽可能轻松和尽早地知道这一点。有几个选项。
1)
if(dictionary.ContainsKey(dictionaryKey)
{
throw new ArgumentException($"An item with the same key ({dictionaryKey}) has already been added.");
}
dictionary.Add(dictionaryKey, value);
2)
try
{
dictionary.Add(dictionaryKey, value);
}
catch(ArgumentException argumentException)
{
throw new ArgumentException($"An item with the same key ({dictionaryKey}) has already been added.");
}
3)其他方式
我知道设置try/catch块会带来性能损失,但似乎每次运行dictionary.ContainsKey(dictionaryKey)
也意味着额外的查找。哪种选项的性能最佳?