抛出异常后的LHS状态

Any*_*orn 3 c++ exception

我正在学习C++异常,我想对这个场景做一些澄清:

T function() throw(std::exception);
...
T t = value;
try { t = function(); }
catch (...) {}
Run Code Online (Sandbox Code Playgroud)

如果抛出异常,变量t的状态是什么?未定义或未定义?

Han*_*ant 6

事情并非那么简单.catch子句还将捕获赋值运算符为t对象类引发的异常.可以部分分配t对象.永远不要捕获所有异常并假设最可能发生的事情.