//
// 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);
}
}
Какой принцип сохранить?Бросать или не бросать
Лично я предпочитаю первый один его скажет разработчик дружественного (уведомление о каждой «аномалии»). Второй его голос (пусть пользователь продолжит работу, даже если «внутри» не все правильно).
Я думаю, что сложнее найти ошибки и ошибки на этапе обслуживания, когда вы тихо позволяете вещам продолжать. Если что-то пойдет не так, вы не сразу уведомляетесь, а иногда ошибаетесь вдали от основной причины ошибки и тратите много времени, чтобы найти его.
Как вы думаете?
Как спокойно сообщать об ошибке «удобно»? Что еще не так, что маскируется этим «удобным» подходом? –
@ S.Lott: «Дружественным к пользователю» я имею в виду, что пользователь прежде всего не увидит странных (для него) сообщений об исключениях, а во-вторых позволит продолжить выполнение (даже неполное) действие, вместо сбоя приложения или что-то похожее, если исключения неправильно обрабатываются. – serhio
Исключения должны быть * исключительными *. Означает ли это исключение? Я не могу сказать, не зная больше о вашей ситуации. – Thomi