Мне интересно, будет ли то, что я собираюсь сделать, это хорошо или плохо. У меня есть этот класс:Обработка исключений - это хорошая практика?
public class Element : IElement
{
public float? Max { get; private set; }
public float? Min { get; private set; }
public float? Average { get; private set; }
public bool HasValue { get; private set; }
public void SetRange(float? min, float? max)
{
if (min >= max)
{
throw new WrongElementValueException("Min must be greater than max!");
}
else if (min < 0f || max < 0f)
{
throw new WrongElementValueException("Min/max must be greater than 0!");
}
else if (min > 100f || max > 100f)
{
throw new WrongElementValueException("Min/max must be lesser than 0!");
}
else
{
Min = min;
Max = max;
Average = (min + max)/2f;
HasValue = true;
}
}
}
Пользователь установит значения, используя метод SetRange(). Но у него есть некоторые ограничения, такие как Min, должен быть больше Max, и ни один из них не должен быть больше 100 или меньше 0.
Должен ли я использовать эти исключения в этом месте? Или есть ли лучший способ обработки неправильного ввода пользователя? Надеюсь, мой вопрос не общий.
Это кажется мне разумным. Хотя я не уверен, что тип исключения более подходит, чем стандартное 'ArgumentException', но это незначительная точка. В любом случае, если вход недействителен, и объект не может действовать иначе, то бросание исключения является подходящим ответом. – David
@David Согласен с тем, что исключение ArgumentException более уместно, поскольку это ожидаемое исключение в случае плохих аргументов. –
«Пользователь установит значения» пользователя приложения или пользователя (т.е. разработчика) кода, который вызовет этот метод? – Richard