Visual Studio 中使用try except 遇到的问题

本文介绍了在Visual Studio中使用try/except时遇到的错误__tryinfunctionscontainingobjectswithdestructors及其解决方法。错误原因是函数中存在带有析构函数的对象。解决方式包括将需要结构异常处理的代码移至其他函数、重写使用结构异常处理的函数避免使用带有析构函数的局部变量及参数、不在构造函数或析构函数中使用SEH以及更改项目的C/C++编译选项禁用C++异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Visual Studio 中使用try except , compile的时候遇到如下error:

__try in functions containing objects with destructors

原因是在使用try/except 的时候,不可以在函数中有object unwinding and destruction.

解决办法, 参考微软: Compiler Error C2712

  1. Move code that requires SEH to another function
  2. Rewrite functions that use SEH to avoid the use of local variables and parameters that have destructors. Do not use SEH in constructors or destructors
  3. Compile without /EHsc

我在项目中的解决方法是采用的第三种:
打开项目的property, C/C++ –> Enable C++ Exceptions , 改为No.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值