首页 > 解决方案 > 错误处理:try-catch 还是返回错误代码?

问题描述

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

假设我将函数称为“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#exceptionerror-handlingtry-catch

解决方案


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


推荐阅读