社区
硬件/系统
帖子详情
一个关于在__try中使用有构造的类问题
clane
2003-10-20 04:33:00
编译时提示不能在__try中使用需要unwindding的局部类,有无办法可以解决这个问题的?
...全文
71
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%的情况下,这是一个好规则。
掰开揉碎『看漫画学Python』
中
本课程采用了漫画+动手实操+练习讲授Python编程技能。课程简介:第6章 容器
类
型数据6.1 序列6.1.1 序列的索引操作6.1.2 加与乘操作6.1.3 切片操作6.1.4 成员测试6.2 列表6.2.1 创建列表6.2.2 追加元素6.2.3 插入元素6.2.4 替换元素6.2.5 删除元素6.3 元组6.3.1 创建元组6.3.2 元组拆包6.4 集合6.4.1 创建集合6.4.2 修改集合6.5 字典6.5.1 创建字典6.5.2 修改字典6.5.3 访问字典视图6.6 动动手 —— 遍历字典6.7 练一练第7章 字符串7.1 字符串的表示方式7.1.1 普通字符串7.1.2 原始字符串7.1.3 长字符串7.2 字符串与数字的相互转换7.2.1 将字符串转换为数字7.2.2 将数字转换为字符串7.3 格式化字符串7.3.1
使用
占位符7.3.2 格式化控制符7.4 操作字符串7.4.1 字符串查找7.4.2 字符串替换7.4.3 字符串分割7.5 动动手 —— 统计英文文章
中
单词出现的频率7.6 练一练第8章 函数8.1 定义函数8.2 调用函数8.2.1
使用
位置参数调用函数8.2.2
使用
关键字参数调用函数8.3 参数的默认值8.4 可变参数8.4.1 基于元组的可变参数( *可变参数)8.4.2 基于字典的可变参数( **可变参数)8.5 函数
中
变量的作用域8.6 函数
类
型8.6.1 理解函数
类
型8.6.2 过滤函数filter()8.6.3 映射函数map()8.7 lambda()函数8.8 动动手 ——
使用
更多的lambda()函数8.9 练一练第9章
类
与对象9.1 面向对象9.2 定义
类
9.3 创建对象9.4
类
的成员9.4.1 实例变量9.4.2
构造
方法9.4.3 实例方法9.4.4
类
变量19.5 封装9.5.1 私有变量9.5.2 私有方法9.5.3
使用
属性9.6 继承性9.6.1 Python
中
的继承9.6.2 多继承9.6.3 重写方法9.7 多态性9.7.1 继承与多态9.7.2 鸭子
类
型测试与多态9.8 练一练第10章 异常处理9.8 练一练10.1 第
一个
异常 —— 除零异常10.2 捕获异常110.2.1
try
-except语句10.2.2 多个except代码块10.2.3 多重异常捕获10.2.4
try
-except语句嵌套10.3
使用
finally代码块释放资源10.4 自定义异常
类
10.5 动动手 —— 手动引发异常10.6 练一练
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
Matlab
中
类
构造
函数方法
目录
类
构造
函数方法
类
构造
函数方法的目的
构造
函数方法的基本结构
构造
函数的指导原则 默认
构造
函数 何时定义
构造
函数 初始化
构造
函数
中
的对象
构造
函数不要求输入参数的情况 子
类
构造
函数 对继承的
构造
函数的隐式调用
类
构造
过程
中
的错误 禁止显示输出对象
类
构造
函数方法
类
构造
函数方法的目的
构造
函数方法是
一个
创建
类
实例的特殊函数。通常,
构造
函数方法接受输入参数来指定存储在属性
中
的数据,并返回初始化的对象。 所有 MATLAB®
类
都有默认的
构造
函数方法。此方法返回在没有输.
nginx 配置
中
try
_files、alias、root解析
1、
try
_files 按指定顺序检查文件是否存在,并
使用
找到的第
一个
文件进行请求处理;该处理是在当前上下文
中
执行的。文件的路径是file根据根和别名指令从参数
构造
的 。可以通过在名称末尾指定斜杠来检查目录是否存在,例如“ $uri/”。如果未找到任何文件,则进行内部重定向到uri最后
一个
参数
中
指定的文件 。例如: location /images/ {
try
_files $uri /images/default.gif; } location = /images/default.gif {
C# ——设计
一个
Windows应用程序,在该程序
中
首先
构造
一个
学生基本
类
,再分别
构造
小学生,
中
学生,大学生等派生
类
设计
一个
Windows应用程序,在该程序
中
首先
构造
一个
学生基本
类
,再分别
构造
小学生,
中
学生,大学生等派生
类
,当输入相关数据,单击不同的按钮(小学生,
中
学生,大学生)将分别创建不同的学生对象,并输出当前学生总人数,该学生的姓名,学生
类
型和平均成绩。如图所示,要求如下: (1)每个学生都有姓名和年龄; (2)小学生有语文,数学成绩; (3)
中
学生有语文,数学和英语成绩。 (4)大学生有必修课学...
硬件/系统
2,640
社区成员
17,239
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章