- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想知道我要做的是好事还是坏事。我有那个课:
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。
我应该在这个地方使用那些异常(exception)吗?还是有更好的方法来处理错误的用户输入?我希望我的问题不是笼统的。
最佳答案
这是一种适当的做法,是的。
虽然我想消费代码会期待 ArgumentException
而不是这种异常类型,但这可能是一个相对次要的问题。
当输入无效,并且对象无法以其他方式有意义地继续时,抛出异常是一种适当且预期的响应。正确使用对象、处理错误、向用户报告等都取决于消费代码。
另一种方法是让这个对象“试着找出要做什么”,这通常会导致一些非常糟糕的编码实践。例如……
这个对象做一件事,而且只做那一件事。如果它的调用方式使其不能做那件事,则异常是一种预期且适当的失败条件。
关于c# - 异常处理——这是好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31050121/
如果您想分享更多信息,可以在这里找到整个资源 指针: https://github.com/sergiotapia/DreamInCode.Net 基本上,我的API将为其他开发人员提供
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我不是 SCM 工具的经验丰富的用户,尽管我确信它们的用处,当然。 我在以前的工作中使用了一些不起眼的商业工具,在当前的工作中使用了 Perforce,并在我的小型个人项目中使用了 TortoiseS
所以我想知道一些我应该避免在 javascript 中做的事情以获得良好的 SEO 排名。在我的下一个站点中,我将广泛使用 jquery 和 javascript,但不想牺牲 SEO。那么您认为我应该
基本上,我想知道什么是避免 future CSS 代码出现问题和混淆的最佳方法... 像这样命名 CSS 属性: div#content ul#navigation div.float-left (真
我是一名优秀的程序员,十分优秀!