假设有如下代码:
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处理程序可能被触发时?
std
版本,因此它们实际上*在同一继承路径中。 - Mark Ransom