【发布时间】:2009-11-11 06:16:09
【问题描述】:
在 try catch 块中从 C++ 中的 catch 块返回值是不好的做法吗?
try
{
//Some code...
return 1;
}
catch(...)
{
return 0;
}
哪种使用 try/catch 的方法是好的做法?
【问题讨论】:
在 try catch 块中从 C++ 中的 catch 块返回值是不好的做法吗?
try
{
//Some code...
return 1;
}
catch(...)
{
return 0;
}
哪种使用 try/catch 的方法是好的做法?
【问题讨论】:
不,只要返回的值是你想要的,你可以随时返回。 (如果分配了内存,请确保您已清除内存)。
【讨论】:
我更喜欢在我的代码中有几个退出点,所以我会写:
int rc = 1;
try {
// some code
}
catch(...) {
rc = 0;
}
return rc;
我发现当我只需要跟踪一个返回语句时,调试和阅读代码会更容易。
【讨论】:
我建议如果您不知道代码抛出了什么样的异常,那么您可以这样做。但是在这种情况下,客户端必须根据返回值采取行动。
但是如果你创建用户定义的异常并抛出它会更好,这样客户就可以知道到底发生了什么。这就是异常的实际用途,推荐给库编写者。
【讨论】:
在函数的末尾,在 try/catch 块之后返回是一个好习惯。
【讨论】: