我有一些使用非常标准的异常模式的C++代码:
try {
// some code that throws a std::exception
}
catch (std::exception &e) {
// handle the exception
}
Run Code Online (Sandbox Code Playgroud)
问题是异常没有被捕获,我无法弄清楚原因.
代码编译为OS X中的静态库(通过Xcode).该库链接到一个Cocoa应用程序,通过Objective-C++ thunk调用所讨论的函数.我怀疑Objective-C和C++之间的相互作用是罪魁祸首,但我所有试图将其解决的尝试都失败了.
我无法创建一个简单的示例,在一个简单的示例中重现此行为.当我从大型程序的上下文中取出相关代码时,一切正常.
任何人都可以建议为什么我的例外没有被抓住?