对于许多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;
}
Run Code Online (Sandbox Code Playgroud)
如你所见,在另一个TRY中有一个TRY.在CATCH中,它将pObj设置为NULL.那么它是否有可能从CATCH块中出来并执行代码行" ret = pObj-> GetAllNumbers(); "?如果是这样,那么除了代码崩溃之外我会.
这是我看到的一些leagcy/old代码.请在另一个TRY中提出你的意见.
而且,如果它遇到CATCH块,它会转到函数的末尾并调用return ret吗?
那么有可能它会从CATCH块中出来并执行代码行
ret = pObj->GetAllNumbers();吗?
是.
如果确实如此,则[I]会[期望]代码崩溃.
我也是.
而且,如果它遇到CATCH块,它会转到函数的末尾并调用return ret吗?
是.