我在MacOS 10.12上使用clang x64编译器。我有以下代码:
try {
throw CryptoPP::Exception(CryptoPP::Exception::OTHER_ERROR, "test");
} catch(CryptoPP::Exception &e) {
std::cout << "cryptopp" << e.what() << std::endl;
} catch(std::exception &e) {
std::cout << "std" << e.what() << std::endl;
}
CryptoPP是作为静态库构建的。当我在可执行应用程序中使用它时,它按预期工作。
当我在动态库中使用CryptoPP静态库时会出现问题。 内部库,我有完整的代码(即异常不会离开库)。但是,日志显示
std test
意味着只有第二个 catch确实捕获了异常。怎么可能?