从std::exception中获取原始异常,可以通过以下步骤进行:
以下是一个示例代码,展示了如何从std::exception中获取原始异常:
#include <iostream>
#include <exception>
class MyException : public std::exception {
public:
MyException(const std::exception& originalException) : originalException(originalException) {}
const char* what() const noexcept override {
return originalException.what();
}
private:
const std::exception& originalException;
};
int main() {
try {
// 假设这里发生了某个异常
throw std::runtime_error("发生了一个错误");
}
catch (const std::exception& ex) {
try {
// 使用自定义派生类包装原始异常
throw MyException(ex);
}
catch (const std::exception& myEx) {
std::cout << "捕获到自定义异常: " << myEx.what() << std::endl;
}
}
return 0;
}
在上述示例中,通过将原始异常对象作为参数传递给自定义派生类的构造函数,并在what()方法中调用原始异常对象的what()方法,实现了从std::exception中获取原始异常的错误信息。
腾讯云相关产品和产品介绍链接地址: 腾讯云云计算产品:https://cloud.tencent.com/product 腾讯云云原生产品:https://cloud.tencent.com/product/tke 腾讯云人工智能产品:https://cloud.tencent.com/product/tai 腾讯云物联网产品:https://cloud.tencent.com/product/iotexplorer 腾讯云存储产品:https://cloud.tencent.com/product/cos 腾讯云区块链产品:https://cloud.tencent.com/product/tbc 腾讯云元宇宙产品:https://cloud.tencent.com/product/mu
领取专属 10元无门槛券
手把手带您无忧上云