我想捕获在使用带有 OpenSSL 加密的 Winsock2 套接字时抛出的异常,但我不知道该怎么做。在 C# 中,我只能捕获基类异常,但在 C++ 中,试图用“catch(std::exception e)”捕获它们是行不通的。它只适用于“catch(...)”,但我需要一些对象来获取详细信息。
在 C++ 中是否不可能通过为基类 std::exception 创建一个 catch block 来捕获每一种异常,或者我是否从其他基类获取异常?
干杯 亚历克斯
最佳答案
据我所知,winsock 和 OpenSSL 是基于 C 的项目,因此不会抛出 C++ 异常。
也就是说,这些项目有可能引发结构化异常。例如,如果将错误的缓冲区传递给这些项目之一导出的函数,则操作系统可能会引发访问冲突异常。
虽然有可能 catch such exceptions ,您可能不想 - 引发异常的应用程序的状态可能不一致。
关于c++ - C++ 中的 Winsock2 + OpenSSL : How can I catch their exceptions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29278561/