当前位置:  开发笔记 > 编程语言 > 正文

编码风格......错误条件是第一个还是最后一个?

如何解决《编码风格错误条件是第一个还是最后一个?》经验,为你挑选了2个好方法。

在订购方面哪个更好?你把故障情况放在顶部还是底部?

if (noProblems == true) {
    // do stuff
} else {
    // deal with problem
}

要么

if (noProblems == false) {
    // deal with problem
} else {
    // do stuff
}

Steven A. Lo.. 47

我想首先消除错误情况 - 并提前从函数返回,以便'幸福路径'保持不嵌套,例如

if (some error condition)
{
    //handle it
    return;
}
//implicit else for happy path
...

如果很容易确定导致幸福路径的条件,那么请务必先将该条款放入(感谢Marcin!)



1> Steven A. Lo..:

我想首先消除错误情况 - 并提前从函数返回,以便'幸福路径'保持不嵌套,例如

if (some error condition)
{
    //handle it
    return;
}
//implicit else for happy path
...

如果很容易确定导致幸福路径的条件,那么请务必先将该条款放入(感谢Marcin!)


好答案.这种模式通常被称为"保护条款".

2> Marcin..:

也许这取决于语言惯例或其他因素,但我觉得名义上的案例应该在顶部,而分支应该包含特殊条件.它使代码更容易阅读.当存在许多异常情况时尤其如此,并且在大多数情况下存在.您将能够轻松地假设作者希望在大多数时间内使用此特定路径,并以这种方式更容易理解代码.

从"代码完成,第2版"第15.1节:

通过将最常见的案例放在第一位,您可以最大限度地减少必须阅读以查找常见案例的异常案例处理代码的数量.您可以提高效率,因为您最大限度地减少了代码执行的测试次数,以便找到最常见的情况.


您可能还想阅读第17.1节,其中说:"使用保护子句(提前返回或退出)以简化复杂的错误处理"
推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有