我现在有这样的好奇心:在C ++软件中,什么时候应该把一些代码放在try-catch系统中?什么时候不能?我知道实际上不可能实现try-捕获一个软件的所有方法中的所有代码(this link都有一些解释)并且我知道在某些情况下实现try-catch是一个好主意,例如:
当然,可以使用try-catch作为组织反问题逻辑和日志编写的方法,例如:
myMethod()
{
//One way
if (!returnsBooleanMethod())
{
printf("An error occured!");
}
else
{
//do something
}
//Another way
try
{
if (!returnsBooleanMethod())
throw "";
//do something
}
catch (...)
{
printf("An error occured!");
}
}
而且,我认为上述两种可能方式之间的选择取决于开发人员和公司的偏好。
在C ++中实现try-catch系统时还有其他情况吗?
修改
我的问题被标记为Usage of try/catch blocks in C++的副本,在我看来,这是一个不好的行为:我的问题与那个问题不同,因为它只涉及并且特别是 时 我应该使用/它建议使用try-catch ,而另一个(尽管标题和3个“subquestions”中的一个)更多地处理特定的try-catch实现由作者描述和尝试捕捉速度效率(因为它的答案明确指出)。