2010-10-20 31 views
3

在编写函数时,我总是会产生这样的疑惑:是否先检查错误并稍后声明变量(或)将参数分配给局部变量,然后检查错误。以下哪种方式是首选,为什么?我通常坚持第一种类型。变量声明与错误检查:哪个先出现?

void DoSomething1(Object x, Object y){ 

    // All sort of error checking goes here 
    if IsError(x) return; 
    if IsError(y) return; 

    // Variable declaration 
    int i,j; 
    Object z = x; 
} 


void DoSomething2(Object x, Object y){ 

    // Variable declaration 
    int i,j; 
    Object z = x; 

    // All sort of error checking goes here 
    if IsError(z) return; 
    if IsError(y) return; 

} 

回答

7

您应该遵循一个邻近规则和晚越好声明的变量。这本地化他们的创作和使用。您还应该检查最早的参数的有效性,以尽量减少所执行的工作。

因此我同意你的第一个更好,但它主观。对于其他方法可能有一些争论,但我还没有听到令人信服的观点,所以我认为这两个指导方针是最佳实践。

既然你说“语言不可知”,尽管你的代码看起来不知怎么奇怪:-),几乎肯定有一些语言,你没有选择,变量必须在顶部声明。

+0

任何情况下,第一个不比第二个好? Ofcouse,没有考虑到语言的具体限制。 – rkg 2010-10-20 08:25:19

+0

+1用于提及邻近规则。不得不滚动到函数的顶部来理解“t”被声明为什么是一种血腥的痛苦。但就像你说的,对于某些语言,没有选择。 – 2010-10-20 08:25:27

+0

@Ravi,说实话,我想不出任何。这并不意味着没有任何东西。我很好,但我不是神:-) – paxdiablo 2010-10-20 08:27:16

1

当你需要它们的时候声明变量,那通常是当一些中间结果准备好或者你刚刚进入一个循环时。

所以这确实意味着错误检查通常会在声明之前出现。