C# - 在该方法中输入参数验证后,立即提出异常有其他优势



我知道 getInfo1 从下面的方法提供了更好的可读性。但是,与方法结束相比,在方法开始时,在方法开始时立即抛出例外的两个方法之间是否有其他区别(例如运行时间执行)?

public string GetInfo1(string name) {
        if(string.IsNullOrWhiteSpace(name))
            throw new ArgumentException(nameof(name));
        var info = GetInfoByName(name);
        return info;
    }
public string GetInfo2(string name) {
        if(!string.IsNullOrWhiteSpace(name)) {
            var info = GetInfoByName(name);
            return info;
        }
        throw new ArgumentException(nameof(name));
    }

我认为getInfo1方法更灵活,并提供了更好的可扩展性。您可以添加代码(更多如果语句),以验证更多案例而无需删除任何内容。

我的意思是一般。如果您只想检查空空间或白色空间,并且确定将来不会验证更多案例,那么这两种方法都很好。

另外,请记住,在特殊情况下应使用例外。用户忘记填写字段或错误地进入空白很常见。

在开始时抛弃意味着您在对其进行任何操作之前验证所有信息。这也意味着不需要运行的代码不需要。

,如果您在开始时检查所有内容,那么它比拥有大量if语句检查值还可以更加整洁(当您最终可能会嵌套很多IF时,这特别有效)。

也值得注意的是,诸如Resmanper之类的事情建议您尽快退出方法。因此,就建议的最佳实践而言,GetInfo1是推荐的方法。

所以,简而言之,因为:

  1. 它更可读
  2. 它遵循建议的最佳实践
  3. 如果整个方法中的语句
  4. 避免了很多不必要的
  5. 代码不需要运行。

相关内容

最新更新