社区
硬件/系统
帖子详情
一个关于在__try中使用有构造的类问题
clane
2003-10-20 04:33:00
编译时提示不能在__try中使用需要unwindding的局部类,有无办法可以解决这个问题的?
...全文
113
3
打赏
收藏
一个关于在__try中使用有构造的类问题
编译时提示不能在__try中使用需要unwindding的局部类,有无办法可以解决这个问题的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bullfinch
2003-10-23
打赏
举报
回复
用编译器指令/GX-
参看链接器错误C2712
clane
2003-10-20
打赏
举报
回复
en,你说的是try,catch
但我这里的问题是__try,__catch的SEH
而且我也没有在析构中抛出异常。。。
会思考的草
2003-10-20
打赏
举报
回复
局部对象在超出作用域后会进行析构,而一旦析构失败,会带来连锁反应。
C++的规则是你绝对不可以在另一个异常的被称为“栈展开(stack unwinding)”的过程中时,从析构函数抛出异常。举例来说,如果某人写了throw Foo(),栈会被展开,以至throw Foo()和 } catch (Foo e) { 之间的所有的栈页面被弹出。这被称为栈展开(statck unwinding)
在栈展开时,栈页面中的所有的局部对象会被析构。如果那些析构函数之一抛出异常(假定它抛出一个Bar对象),C++运行时系统会处于无法决断的境遇:应该忽略Bar并且在} catch (Foo e) { 结束?应该忽略Foo并且寻找 } catch (Bar e) { ?没有好的答案——每个选择都会丢失信息。
因此C++语言担保,当处于这一点时,会调用terminate()来杀死进程。突然死亡。
防止这种情况的简单方法是不要从析构函数中抛出异常。但如果你真的要聪明一点,你可以说当处理另一个异常的过程中时,不要从析构函数抛出异常。但在第二种情况中,你处于困难的境地:析构函数本身既需要代码处理抛出异常,还需要处理一些“其他东西”,调用者没有当析构函数检测到错误时会发生什么的担保(可能抛出异常,也可能做一些“其他事情”)。因此完整的解决方案非常难写。因此索性就做一些“其他事情”。也就是,不要从析构函数中抛出异常。
当然,由于总有一些该规则无效的境况,这些话不应该被“引证”。但至少99%的情况下,这是一个好规则。
java
try
中
的变量_为什么在
try
中
定义的变量不能在catch
中
或在Java
中
最终
使用
?
Java
中
的
类
将具有三种变量,即静态(
类
),实例和局部变量。实例变量-这些变量属于
类
的实例(对象)。这些在
类
内但在方法外声明。这些在实例化
类
时初始化。可以从该特定
类
的任何方法,
构造
函数或块
中
访问它们。
类
/静态变量-
类
/静态变量属于
类
,就像实例变量一样,它们在
类
内在任何方法之外声明,但
使用
static关键字声明。它们可以在编译时访问,您可以在实例化之前/不实例化
类
时进行访问,整个
类
中
只有
一个
静态字段...
c++多线程,adopt_lock_t/defer_lock_t/
try
_to_lock_t
std::adopt_lock_t struct adopt_lock_t {}; constexpr adopt_lock_t adopt_lock {}; 是
一个
空
类
,作为adopt_lock
类
型 对unique_lock or lock_guard的建造含糊,将adopt_lock作为参数传递,使object不要锁互斥量,并且假定互斥量已经被 当前线程锁住 std::defer_lock_t struct defer_lock_t {}; 是
一个
空
类
,used as the type
用C# 设计
一个
Windows应用程序,在该程序
中
首先
构造
一个
学生基本
类
,再分别
构造
小学生、
中
学生、大学生等派生
类
,当输入相关数据,单击不同的按钮(小学生、
中
学生、大学生)将分别创建不同的学生对象,
1.题目要求如下: 用C# 设计
一个
Windows应用程序,在该程序
中
首先
构造
一个
学生基本
类
,再分别
构造
小学生、
中
学生、大学生等派生
类
,当输入相关数据,单击不同的按钮(小学生、
中
学生、大学生)将分别创建不同的学生对象,并输出当前学生总人数,该学生的姓名、学生
类
型和平均成绩。 如下图所示,要求如下: (1)每个学生都要姓名和年龄。 (2)小学生有语文、数学成绩。 (3)
中
学生有语文、数学和英语成绩 (4)大学生有必修课学分总数和选修课学分总数,不包含单科成绩。 (5)学生
类
提供...
Matlab
中
类
构造
函数方法
目录
类
构造
函数方法
类
构造
函数方法的目的
构造
函数方法的基本结构
构造
函数的指导原则 默认
构造
函数 何时定义
构造
函数 初始化
构造
函数
中
的对象
构造
函数不要求输入参数的情况 子
类
构造
函数 对继承的
构造
函数的隐式调用
类
构造
过程
中
的错误 禁止显示输出对象
类
构造
函数方法
类
构造
函数方法的目的
构造
函数方法是
一个
创建
类
实例的特殊函数。通常,
构造
函数方法接受输入参数来指定存储在属性
中
的数据,并返回初始化的对象。 所有 MATLAB®
类
都有默认的
构造
函数方法。此方法返回在没有输.
error C2712: 无法在要求对象展开的函数
中
使用
__
try
bool WindowContainer::GotoMainPage(bool bDestroyCurWndPage/* = true*/) { bool bResult = false; LockChilds(); __
try
{ GUIList::iterator it = m_lstWndPage.begin();// 这句话报错消息
硬件/系统
2,643
社区成员
17,229
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章