В стандартной реализации исключение KeyNotFoundException сообщает что ключ не найден, но почему-то не сообщает какой именно. Исправить ситуацию можно так:
public class MyDictionary : Dictionary<string, object>
{
public new object this[string key]
{
get
{
object value;
if (!base.TryGetValue(key, out value))
throw new KeyNotFoundException(string.Format("Значение [{0}] не найдено", key));
else
return value;
}
set
{
base[key] = value;
}
}
}Теперь это исключение можно поймать и сообщить пользователю что-то осмысленное.
No comments:
Post a Comment