//
// To Throw
void PrintType(object obj)
{
if(obj == null)
{
throw new ArgumentNullException("obj")
}
Console.WriteLine(obj.GetType().Name);
}
//
// Not to Throw
void PrintType(object obj)
{
if(obj != null)
{
Console.WriteLine(obj.GetType().Name);
}
}
Какой принцип сохранить?
Лично я предпочитаю первый один из них сказать для разработчиков (уведомляется об каждой "аномалии" ). Второй - это удобный (пусть пользователь продолжает работать, даже если "внутри" не все работает правильно).
Я думаю, что сложнее найти ошибки и ошибки на этапе обслуживания, когда вы тихо позволяете вещам идти дальше. Если что-то пойдет не так, вы не сразу уведомляетесь и иногда имеете ошибки вдали от основной причины ошибки и тратите много времени на ее поиск.
Как вы думаете?