我认为我已经理解了,但需要您的进一步确认,因为我想正确地理解并执行!在抽象化异常处理和逻辑代码方面,我仍然没有找到一个直线。所以我想在您的帮助下更加接近它。
让我们考虑我调用函数"foo(0)":
// Code 1
int foo(int a)
{
int value = 10;
return value/a;
}
这将抛出“除以零”的异常。
但是,如果参数"a"必须在函数"bar"(代码2)能够返回有效结果的特定范围内(例如在[5...10]的范围内),那么使用超出该范围的值(例如3)调用它当然不会引发异常,除非我定义一个异常。因此,针对这种情况,我要定义一个异常,是吗?
例如,可以这样做:
// Code 2
void bar(int b)
{
if (b < 5)
{
throw new ArgumentException("Your input parameter is below minimum acceptable value");
}
else if (b > 10)
{
throw new ArgumentException("Your input parameter is above maximum acceptable value");
}
else
{
output(b);
}
}
那么,难道不应该使用异常来处理这个问题吗(我认为它们正是为了这个目的而存在),我更倾向于用这种方式解决问题?
// Code 3
int bar(int b)
{
int error = 0
if (b < 5)
{
error = -1;
}
else if (b > 10)
{
error = -2;
}
else
{
output(b);
}
return error;
}
感谢您的意见。
祝好!
我询问的原因是,我手头有一份已发布软件的源代码,其中包括try-catch。由于我在OOP方面没有太多经验,因此也不熟悉“try-catch”。根据我找到的帖子和观看的YouTube教程,我认为这个主题非常容易误解。我猜想这个软件的开发人员可能也误解了它。如果我错了,请告诉我。