这确实不是一个重要的问题。我只是想知道哪种方法更受欢迎,以及是否存在某种事实上的标准。
此,
function foobar
{
int retVal = 0;
try
{
retVal+=100;
}
catch
{
//error handling code
}
return retVal;
}
还是这个?
function foobar
{
try
{
return 100;
}
catch
{
//error handling code
}
return 0;
}
答案 0 :(得分:3)
不幸的是,这很大程度上取决于您期望发生的异常,并且如果异常发生,函数应返回默认值。
这也会受到函数本身的影响,正如我在较小的实用函数中发现的那样,它易于阅读并查看函数返回的位置以及它将返回的内容,因为它有时更适用于具有多个函数的函数。一个返回点,因为业务逻辑/正常逻辑会使这更容易理解。
所以两者都可以接受......
答案 1 :(得分:3)
这实际上取决于功能的作用。当函数需要通过一些操作来构造返回值时,使用retVal
变量很有用。如果返回值比原始值更大,那么我就不会为额外的变量而烦恼。
答案 2 :(得分:0)
这个问题与try catch没有多大关系,因为它与编码样式有关。在第一个选项中,您只有该函数的返回路径,而在第二个选项中您有许多。
除了编码样式之外,在多于一个返回路径的情况下,您仍然可以看到第一个选项,但这取决于相关代码。
我尽量避免使用多个函数的返回路径。我发现我的团队更容易阅读(他们也这样做,因为它是我们指南的一部分)。
答案 3 :(得分:0)
最简单的返回是安全的,因为如果你有一个 finally 块或其他一些东西需要清理,过早返回可能会导致错误。
答案 4 :(得分:0)
如果try catch有几个会影响返回值的进程,那么第一个是我的选择。如果你想返回一个恒定值,第二个就适合。
答案 5 :(得分:0)
我觉得这更具可读性(把回车放在catch块中):
function foobar
{
try
{
return 100;
}
catch
{
//error handling code
return 0;
}
}