腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
16
回答
如果不应该在
析
构
函数
中
抛出
异常
,如何
处理
其中
的
错误?
c++
、
exception
、
destructor
、
raii
大多数人说,永远不要从
析
构
函数
中
抛出
异常
,这样做会导致未定义
的
行为。Stroustrup指出,“向量
析
构
函数
显式地为每个元素调用
析
构
函数
。这意味着如果一个元素
析
构
函数
抛出
,向量销毁就会失败……实际上没有什么好
的
方法来防止
从
析
构
函数<
浏览 41
提问于2008-09-24
得票数 298
回答已采纳
1
回答
为什么
我
不能
处理
从
析
构
函数
外部
抛出
的
异常
?
c++
、
exception
我
在C++ primer第5版ch18中读到过关于
异常
处理
的
内容,
析
构
函数
通常不应该
抛出
像STL容器这样
的
异常
,如果应该
抛出
,
抛出
的
表达式应该包装在try-catch块中( catch必须
处理
该
异常
)
我
试着这样做是为了更好地理解: struct Foo{ Foo(){ std::cout << &q
浏览 56
提问于2021-02-25
得票数 0
回答已采纳
5
回答
为什么
代码会崩溃?
c++
、
exception
在互联网上查找C++脑卒中者,
我
发现了以下示例:public: {endl; catch (const char* ex) cout << ex << endl;} A::A()将在调用objectA
的
构造
函数
时输
浏览 10
提问于2009-08-26
得票数 0
回答已采纳
3
回答
异常
处理
c++
、
exception-handling
在c++中有没有我们
不能
处理
异常
的
部分?
浏览 1
提问于2010-06-21
得票数 1
4
回答
这是
从
析
构
函数
抛出
异常
的
安全方法吗?
c++
、
exception
、
c++11
我
知道
从
析
构
函数
抛出
通常不是一个好主意,但我想知道
我
是否可以使用std::uncaught_exception()来安全地
从
析
构
函数
抛出
。)) { } }这是c++11
的
UB这
浏览 0
提问于2013-03-22
得票数 7
回答已采纳
2
回答
为什么
不能
从
析
构
函数
抛出
异常
,而可以
从
复制构造
函数
抛出
异常
?
c++
、
destructor
、
copy-constructor
如果
从
析
构
函数
中
抛出
多个
异常
,则似乎
不能
抛出
析
构
函数
的
异常
。在有效
的
C++中,Scott使用了一个向量示例,其中第一个元素在销毁过程中
抛出
异常
,然后第二个元素
抛出
导致C++ (
不能
处理
多个
异常
)
的
问题。当然,这种场景(操作
浏览 3
提问于2014-06-21
得票数 2
3
回答
c++:
从
析
构
函数
引发
异常
c++
、
exception-handling
、
destructor
我
告诉他,如果堆栈展开已经在progress.Other中,那么程序可能会终止,如果
异常
处理
得当,您是否看到任何问题。
我
告诉他不,只要是适当
的
handled.But,他看起来对
我
的
回答不太满意。
浏览 2
提问于2013-04-11
得票数 1
4
回答
为什么
C++11将
析
构
函数
标记为nothrow,以及是否有可能重写它?
c++
似乎C++11隐式地将每个
析
构
函数
标记为nothrow 。
为什么
会这样呢?这可能是个坏主意,但我想知道
为什么
?如果它本身并不坏,是否有一种方法来覆盖它,这样
析
构
函数
就不会被
抛出
?
我
知道
异常
可能是邪恶
的
,但有时它们是有用
的
,特别是当我
的
应用程序
的
用户生成崩溃报告时。
浏览 4
提问于2016-11-06
得票数 3
回答已采纳
5
回答
虚拟
析
构
函数
中
的
异常
处理
c++
我
在Stack上分配了两个数据库类对象。
我
在
我
个人定义
的
类中继承了这个数据库类。现在Database类有一个名为"Close()“
的
函数
,如果关闭该数据库实例失败,它会
抛出
一个
异常
。现在从客户端
的
角度来看,
我
不希望客户端每次都调用close()来关闭连接,而是希望在Database类中声明一个虚拟
的
Desctuctor,它将在对象超出范围时自动关闭连接。现在
我
面临
浏览 0
提问于2015-07-16
得票数 2
1
回答
c++
析
构
函数
通过单个对象
抛出
异常
c++
我
试图理解
为什么
从
析
构
函数
中
抛出
异常
会导致程序崩溃。由于我发现了许多
抛出
多个
异常
的
两个对象
的
示例,编译器无法
处理
多个
异常
,但在
我
的
示例中,
我
只
从
析
构
函数
抛出
了一个
异常
。
为什么</
浏览 2
提问于2018-08-17
得票数 3
4
回答
为什么
你
不能
从破坏者身上扔东西。示例
c++
、
exception
、
destructor
我
读到过,因为堆栈展开,
从
析
构
函数
中
抛出
并不是一个好主意。
我
不确定
我
完全明白这一点。foo a; throw 3; { }现在,
我
以为a是1,因为前3被
抛出
,b
的
析
构
函数
被调用,<em
浏览 2
提问于2014-10-16
得票数 3
回答已采纳
2
回答
用Try / Catch块替换
析
构
函数
中
的
方法块
c++
、
visual-studio-2008
我
最近
的
任务是找出我们代码
的
一部分中
的
内存泄漏。泄漏最终在一个特定object...and
的
析
构
函数
中,
我
发现了一些非常奇怪
的
东西。
我
的
第一个问题是:这是严格合法
的
C++吗?它在Visual Studio2008中编译,但我向一些朋友/同事展示了它,他们对它
的
工作感到相当震惊。然而,它实际上并
不能
像预期
的</e
浏览 1
提问于2011-05-10
得票数 6
回答已采纳
2
回答
gcc默认
析
构
函数
异常
规范
c++
、
linux
、
exception
、
gcc
、
throw
error: looser throw specifier for ‘virtual C::~C()’在
我
的
debian测试中( gcc (Debian 4.6.0-10) 4.6.1 20110526 (预发行版)),但在以前
的
gcc版本上编译没有错误(在
我
的
debian系统上又是4.5 )。根据这个答案,编译器应该创建一个与基类
的
声明相匹配
的
默认构造
函数
浏览 1
提问于2011-07-01
得票数 8
回答已采纳
1
回答
构造
函数
中
处理
的
异常
已传回。多么?
c++
、
exception
、
exception-handling
、
constructor
我
有一个类,它
的
构造
函数
会
抛出
一个
异常
。
我
还有一个catch块来
处理
这个
异常
。但是,
我
仍然看到
异常
被传播回调用者,即使它被
处理
了。
我
知道,应该有一个
异常
来通知调用者构造失败。但在这种情况下,它(重新
抛出
)是如何发生
的
呢?double &e) std::cout << "i
浏览 3
提问于2013-07-12
得票数 0
2
回答
在
析
构
函数
中
处理
异常
(但不
抛出
)
c++
、
exception
、
destructor
我
已经了解到,如果
抛出
析
构
程序,如果在堆栈展开过程中发生这种情况,则会失败,因为这样会传播超过一个
异常
。return 0;catch (int& ex) return ex;但是,
我
有一个类层次结构,其中一个
析
构
函数
调用一个可能
抛出
的
函数
,因为这个条目层次结构是有毒
的
,这意味着现在所有
析
构
浏览 5
提问于2019-10-28
得票数 3
回答已采纳
5
回答
调用可在C++中引发
异常
的
函数
的
析
构
函数
c++
、
exception
、
destructor
、
throw
、
try-catch
我
知道
我
从
析
构
函数
抛出
异常
。 如果
我
的
析
构
函数
调用了一个可以
抛出
异常
的
函数
,
我
是否可以在
析
构
函数
中捕获它,而不是进一步
抛出
它?或者它会导致
异常
终止吗?
我
根本不应该<em
浏览 1
提问于2009-07-27
得票数 11
回答已采纳
2
回答
析
构
函数
中
的
c++
异常
c++
、
exception-handling
从
其他线程中,
我
知道我们不应该在
析
构
函数
中
抛出
异常
!但在下面的例子中,它确实有效。这是否意味着我们只能在一个实例
的
析
构
函数
中
抛出
异常
?我们应该如何理解这个代码示例!
浏览 4
提问于2016-12-15
得票数 12
回答已采纳
1
回答
为什么
C++偏袒
析
构
函数
的
异常
?
c++
、
exception
、
compiler-construction
、
destructor
) cout << "Why this doesn't call" << endl;}上面的代码都
抛出
了2个
异常
,那么
为什么
编译器在
析
构
函数
的
情况下是偏倚
的
呢
浏览 2
提问于2014-03-14
得票数 2
回答已采纳
4
回答
异常
处理
,c++中
的
意外终止符
c++
、
exception
、
terminate
下面的代码是关于
异常
处理
的
。
我
得到了输出:I'll be back!忽略这一点。
我
想我已经提供了足够
的
细节。
浏览 3
提问于2013-04-16
得票数 1
回答已采纳
2
回答
在
抛出
未
处理
异常
后过早离开
的
析
构
函数
是否释放成员数据?
c++
、
exception
、
destructor
如我所知,
析
构
函数
的
工作顺序与构造
函数
相反:
析
构
函数
执行其主体,然后销毁成员数据(处于销毁阶段)。
我
知道
析
构
函数
不应该
抛出
异常
,如果它
抛出
异常
,那么它应该自己
处理
该
异常
。 **出于好
浏览 8
提问于2021-02-25
得票数 2
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
比较 上下文管理器及构造/析构函数
一文了解“最好编程语言”PHP 必知的 16 个编程法则!
AssetManager.finalize Timed Out 分析
C+之异常处理
Visual Studio:优化了复制/移动省略
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券