首页 > 其他分享 >获取std::exception_ptr指向的异常信息

获取std::exception_ptr指向的异常信息

时间:2024-03-30 19:29:23浏览次数:19  
标签:std exception ptr2 catch 异常 ptr

1、产生std::exception_ptr的方式:

    std::exception_ptr ptr = nullptr;  //用来保存异常信息
    try{
        test();
    }catch(...){
        std::exception_ptr ptr = std::current_exception();  //这是exeception_ptr产生的地方
    }

std::exception_ptr ptr2 = std::make_exception_ptr(std::runtime_error("另一个异常")); //也可以产生异常指针

2、获取std::exception_ptr指向的异常信息

    try{
        rethrow_exception(ptr2);
    }
    catch(const exception& e){
        cout << e.what() << endl;
    }

3、完整示例

#include<exception>
#include <string>
#include <iostream>
using namespace std;

void test(){
    throw std::runtime_error("测试而已");
}

int main(){
    std::exception_ptr ptr = nullptr;  //用来保存异常信息
    try{
        test();
    }catch(...){
        std::exception_ptr ptr = std::current_exception();  //这是exeception_ptr产生的地方
    }
    std::exception_ptr ptr2 = std::make_exception_ptr(std::runtime_error("另一个异常")); //也可以产生异常指针

    try{
        rethrow_exception(ptr2);
    }
    catch(const exception& e){
        cout << e.what() << endl;
    }
    return 0;
}   

标签:std,exception,ptr2,catch,异常,ptr
From: https://blog.csdn.net/qq_33271629/article/details/137164542

相关文章

  • 函数调用约定——__cdecl与__stdcall
    1.定义函数调用约定,也称函数调用协议,是指在函数调用时,确定函数参数如何传递给被调用的函数,以及如何返回结果值给调用者的一系列规则。也就是函数的调用者与被调用者之间如何传参以及如何恢复栈平衡。2.职责规定了函数参数的压栈顺序,即有多个参数时,按照什么顺序进行压栈;规定了......
  • java.sql.BatchUpdateException: Date truncation: Out of range value for column xx
    报错:java.sql.BatchUpdateException:Datetruncation:Outofrangevalueforcolumnxxxxx原因:xxx列ddl中为stock_num(12,2)数据库值为0.06需要更新为:0.06-0.21就会出现该错误参考:https://www.jb51.net/article/158166.htmhttps://blog.csdn.net/stone_tomca......
  • Uncaught (in promise) DOMException: Failed to execute 'setRequestHeader' on 'XML
    根据错误提示"Uncaught(inpromise)DOMException:Failedtoexecute'setRequestHeader'on'XMLHttpRequest':Theobject'sstatemustbeOPENED.",你遇到了一个错误,该错误表明在调用setRequestHeader方法时,XMLHttpRequest对象的状态必须是已打开(OPENED)的状态。解决此问......
  • 关于使用IconData时flutter build apk 打包报错Target aot_android_asset_bundle fail
    flutter项目中引入了iconfont.ttf之后,调试时正常,打包就报错。 网上有的说法是:使用了iconfont.ttf里面不存在的icon,但是我使用的都是在iconfont.tt文件中的icon。 我的情况是使用了switch  case给IconData的codePoint动态赋值,下面这种情况就是打包报错的 解决办法是......
  • flutter加载网络图片错误EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE The following
    在flutter里使用image.network加载网络图片遇到错误══╡EXCEPTIONCAUGHTBYIMAGERESOURCESERVICE╞════════════════════════════════════════════════════ThefollowingSocketExceptionwasthrownresolvingani......
  • dubhe2024 BuggyAllocator:通过修改_IO_2_1_stdout_的内容进行任意读
    在堆题中遇到没有show()函数的情况,导致无法泄露地址。这时可以通过修改_IO_2_1_stdout_来强制程序输出一段内存,从而泄露需要的地址。例题:dubhe2024BuggyAllocatordubhe2024,xctf分站赛最后一场凄惨爆零,主看了这道题一整天,逆清楚了但找不到漏洞。事后来看当时就算找到洞了也不会......
  • Ubuntu20.04安装openCV+contrib报错:fatal error: boostdesc_bgm.i: No such file or d
    把文件前面的数字去掉,改成boostdesc_bgm.i,不可用!!!!文件可能没有下载成功!!当时可能会编译成功,但是之后还是会报错下载缺少的相关依赖https://pan.baidu.com/s/17XhXX_cLz46bsj9ZWRkNIg提取码:p50x最好在本地解压后压缩成zip格式的,否则直接解压rar格式的会报错; 如果继续出现以......
  • 【Azure Cloud Service】部署云服务时候遇见 Last exit code: 0. Last role exception
    问题描述部署云服务时候遇见Lastexitcode:0.Lastroleexception:(System.IO.FileNotFoundException)错误,提示无法加载System.Runtime。Recoveringrole...Applicationstartuptask0finishedsuccessfully.Lastexittime:[2024/03/27,20:23:31.142].Lastexit......
  • 【异常】IDEA链接TDengine提示SQLException: JNI ERROR (0x2354): Version not compat
    一、异常内容TDEngine提示SQLException:JNIERROR(0x2354):VersionnotcompatibleCausedby:java.sql.SQLException:JNIERROR(0x2354):Versionnotcompatible atcom.taosdata.jdbc.TSDBError.createSQLException(TSDBError.java:90) atcom.taosdata.jdbc.TS......
  • tomcat 启动报错javax.naming.NameNotFoundException: 名称[xxx.LoginFilter/xxxServi
    本地测试没问题,部署到服务器上的tomcat,启动报错javax.naming.NameNotFoundException:名称[xxx.LoginFilter/xxxService]未在此上下文中绑定可能是由于在Tomcat的配置文件中,资源名称[xxxx]没有正确配置或者引用。为了解决这个问题,你可以尝试以下步骤:1、检查你的Tomcat配置文......