Clang异常捕获无法正常工作

时间:2017-12-29 20:18:54

标签: c++ macos exception casting clang

我在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确实捕获了异常。怎么可能?

0 个答案:

没有答案