在try catch块中,在catch中返回是不是很糟糕?这是一个很好的做法

时间:2009-11-11 06:16:09

标签: c++ try-catch

在try catch块中,从C ++中的catch块返回值是不好的做法吗?

try
{
    //Some code...
    return 1;
}
catch(...)
{
    return 0;
}

使用try / catch的哪种方法是很好的做法?

4 个答案:

答案 0 :(得分:28)

不,只要返回的值表示您想要的值,您就可以随时返回。 (如果已分配,请确保已清除内存。)

答案 1 :(得分:7)

我更喜欢在我的代码中有几个退出点,所以我会写:

int rc = 1;
try {
  // some code
}
catch(...) {
  rc = 0;
}
return rc;

当我只需要跟踪一个return语句时,我发现调试和读取代码更容易。

答案 2 :(得分:1)

我建议如果您不知道代码抛出了什么样的异常,那么您可以这样做。但在这种情况下,客户端必须根据返回值采取行动。

但是如果你创建用户定义的异常并抛出它会更好,这样客户端就可以知道发生了什么。这就是异常的实际用途,建议用于图书馆作者。

答案 3 :(得分:-1)

是一个很好的做法,让它在try / catch块之后返回函数的末尾。