对于许多C ++专家来说,这应该是一个非常简单的问题。
我有一些类似下面的C ++代码。
BOOL FindNumbersInObj() {
BOOL ret = true;
try {
//Do bunch of things here...
CMyObj pObj;
try {
pObj->GetMyObjectPtr();
}
catch (MyException ex) {
pObj = NULL;
ret = false;
}
ret = pObj->GetAllNumbers();
//Do something here too....
}
catch (MyException ex) {
//Log Error Message
ret = false;
}
return ret;
}
如你所见,在另一个TRY中有一个TRY。在CATCH中,它将pObj设置为NULL。那么它是否有可能从CATCH块中出来并执行代码行“ ret = pObj-> GetAllNumbers(); ”?如果是这样,那么除了代码崩溃之外我会。
这是我看到的一些leagcy / old代码。请在另一个TRY中提出你的意见。
如果它碰到CATCH块,它会到达函数的末尾并调用 return ret 吗?
答案 0 :(得分:6)
那么它是否有可能从CATCH块中出来并执行代码行
ret = pObj->GetAllNumbers();
?
是
如果确实如此,那么[I]会[期望]代码崩溃。
我也是。
如果它碰到CATCH块,它会转到函数的末尾并调用return ret吗?
是