Для многих экспертов на C++ это должен быть довольно простой вопрос.Будет ли выполняться код после блока CATCH?
У меня есть код на 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();"? Если да, то я бы исключаю, чтобы сбой кода.
Это некоторый код/старый код, на который я смотрю. Пожалуйста, дайте свое мнение о том, что TRY внутри другого TRY.
А также, если он попадает в блок CATCH, он перейдет в конец функции и вызовет return ret?
Не могли бы вы исправить ваш отступ? –
'BOOL' не в C++ 11. Вероятно, вы имеете в виду 'bool' –
@BasileStarynkevitch: Возможно, используя старые псевдонимы типа Microsoft –