【发布时间】:2014-11-18 16:08:42
【问题描述】:
假设有以下代码:
try {
// Do some boost stuff here
}
catch (const std::exception & stdEx) {
cout << stdEx.what() << endl;
}
问题:
1) 我知道代码适用于某些 boost 异常,即使 std::exception 和 boost::exception 不在同一继承路径上。那为什么会起作用呢?
2) 它是否适用于所有 boost 异常?换句话说,是否有可以触发低于 std::exception 处理程序的 boost::exception 处理程序的示例?
【问题讨论】:
-
在没有真正深入研究 Boost 代码的情况下,我怀疑它在适当的编译器上运行时具有遵循
std版本的条件,因此它们实际上 是 在相同的继承路径。
标签: c++ boost exception-handling