【发布时间】:2011-11-26 18:07:23
【问题描述】:
我正在用 C++11 编写一个小程序,并且第一次真正使用异常。
我有一个关于如何有效捕获异常的问题,经过一番谷歌搜索后,我仍然没有答案。
这是一个问题: 通过 (const?) 左值引用或 (const?) 右值引用捕获异常更有效(或推荐)的是什么?
在代码中给出:
1)
try { throw std::exception{"what"}; }
catch (std::exception& ex) {}
2)
try { throw std::exception{"what"}; }
catch (const std::exception& ex) {}
3)
try { throw std::exception{"what"}; }
catch (std::exception&& ex) {}
4)
try { throw std::exception{"what"}; }
catch (const std::exception&& ex) {}
【问题讨论】:
-
通过右值引用捕获甚至是非法的stackoverflow.com/q/21977340/5447906
标签: c++ exception c++11 try-catch rvalue-reference