gpt4 book ai didi

c# - 错误处理 : try-catch or returning an error code?

转载 作者:行者123 更新时间:2023-12-03 07:38:35 26 4
gpt4 key购买 nike

我实际上认为我明白了,但需要你的一些额外确认,因为我想理解它并以正确的方式去做!我仍然没有找到抽象异常处理和逻辑代码的直线。所以我试着在你的帮助下更接近它。

让我们考虑调用函数“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;
}

感谢您的输入。

干杯

(我问的原因是因为我面前确实有一个已发布软件的源代码,它同时具有这两种功能。我在 OOP 方面没有太多经验,因此对“try-catch”也没有太多经验。而且,相信找到的帖子和我浏览的 youtube 教程,这个主题被误解得很厉害。我猜我前面的软件开发人员确实误解了它。如果我错了请告诉我。)

最佳答案

在 C# 中报告错误的惯用方法是通过异常。返回错误代码当然在技术上可行,但这并不是 C# 中的处理方式。

关于c# - 错误处理 : try-catch or returning an error code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60938260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com