Мне было интересно, подчиняются ли те же правила scope в C++, как и все остальное. Вот пример.Заброшенные объекты scope
try{
Error err;
err.num = 10;
err.str = "This will be thrown."
throw err;
}
catch(Error e){
cout << "Error num is: " << e.num << " error string is: " << e.str << endl;
}
ли эта работа или же тот факт, что err
был создан в try
блоке остановить его от использования в блоке поймать?
Да, это работает. Вы бросаете «err», блок catch обрабатывает «e»; все, что вы инициализировали в «err», будет присутствовать в «e». – paulsm4
Вы бросаете * копию * ... –
Насколько я знаю, область действия в try объявленных переменных заканчивается при выполнении блока finally (То есть после catch). Но я не уверен – Manu343726