社区
工具平台和程序库
帖子详情
关于C++异常重抛的疑问
Guo Li
2004-10-12 10:10:14
在C++的异常中,有一个异常重抛的功能,如:
try
{
xxxx;
}
catch (...)
{
throw;
}
当一个异常被抛出的时候,如果它的上层函数不能捕获该异常,那么这个异常会继续沿着调用链向上直到这个异常被捕获,那么这个异常重抛是不是就显得多余呢??
...全文
83
7
打赏
收藏
关于C++异常重抛的疑问
在C++的异常中,有一个异常重抛的功能,如: try { xxxx; } catch (...) { throw; } 当一个异常被抛出的时候,如果它的上层函数不能捕获该异常,那么这个异常会继续沿着调用链向上直到这个异常被捕获,那么这个异常重抛是不是就显得多余呢??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
DiabloWalkOnTheEarth
2004-10-12
打赏
举报
回复
像这样一个程序:
HResource r1 = GetR1();
dosomething();
dootherthing();
CleanR1( r1 );
done();
如果 dosomething dootherthing 抛出了异常,哪 r1 就得不到释放, 因此可以写成:
HResource r1 = GetR1();
try{ dosomething(); } catch(...) { CleanR1(r1); throw;}
try{ dootherthing();} chatch(...) { CleanR1(r1); throw;}
CleanR1( r1 );
done();
不过这时我一般都是这样搞.
struct __HR1
{
HResource r1;
__HR1() : r1( GetR1() ){}
~__HR1() { CleanR1(r1); }
} r1;
dosomething();
dootherthing();
done();
pacman2000
2004-10-12
打赏
举报
回复
常常这么写:
catch (exception & e)
{
do_something();
throw;
}
或者:
catch (exception & e)
{
if (judge(e))
do_something();
else
throw;
}
pacman2000
2004-10-12
打赏
举报
回复
有用的,因为也许只是在这一层做部分处理,或者根据异常的种类来决定是不是重抛。
Guo Li
2004-10-12
打赏
举报
回复
C++既然有这个功能,难道只是做个花瓶?
umbrella1984
2004-10-12
打赏
举报
回复
这是一种设计的技巧,最后都会被扑获。
Guo Li
2004-10-12
打赏
举报
回复
没有人可以做一下解释吗?
Guo Li
2004-10-12
打赏
举报
回复
明白了!谢谢各位~
征服
C++
11视频精讲
【为什么还需要学习
C++
?】 你是否接触很多语言,但从来没有了解过编程语言的本质?... 提升篇: 本篇可以帮助学员更加高效的进行
c++
开发,其中包含类型转换、文件操作、
异常
处理、代码
重
用等内容。
【
C++
】
异常
->捕获
异常
、
抛
异常
(学习复习兼顾)
2.
C++
异常
概念 3.
异常
的使用 3.1
异常
的
抛
出和捕获
异常
的
抛
出和匹配原则: 在函数调用链中
异常
栈展开匹配原则: 3.2
异常
的
重
新
抛
出 3.3
异常
安全 3.4
异常
规范 4.自定义
异常
体系 5.
C++
标准库的
异常
体系 6.
异常
的...
C++
异常
处理机制由浅入深, 以及函数调用汇编过程底层刨析.
C++
11智能指针底层模拟实现
C++
异常
处理机制由浅入深, 以及函数调用汇编过程底层刨析.
C++
11智能指针底层模拟实现
C++
常用
异常
处理以及原理解析
要理解
C++
异常
机制实现之前,首先要了解一个函数的调用和返回机制,这里面就要涉及到ESP和EBP寄存器。我们先看一下函数调用和返回的流程: 下面是按调用约定__stdcall调用函数test(intp1,intp2)的汇编代码 假设...
c++
::浅析
c++
异常
我觉得看到这篇文章的人肯定有很多
疑问
,比如:什么是
异常
?为什么要使用
异常
?使用
异常
会对程序代码有什么影响以及不使用又会怎样?等等。那么接下来我一一为你解答,跟着我揭开
异常
的面纱。 【我们还是先来了解...
工具平台和程序库
24,855
社区成员
27,343
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章