什么使用使用异常?

crst_zh 2009-05-18 10:41:43
什么时候抛出异常?
什么时候抛出异常?
考虑一个很简单 的例子,一个函数
double fun(double x,double y)
{
...
double res= x/y;
...
}
分母为零的情况,该不该抛出异常呢?

问题1:什么情况下应该抛出异常呢?一般的准则是什么?
问题2:利用返回值的方式,用户代码也不一定会检查返回值,那么使用异常机制,怎么保证客户程序应该进行异常捕获呢?从哪里体现出来这个函数可能会抛出异常,从而要求客户代码应该进行异常处理?

谢谢大家。
...全文
156 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jalien 2009-05-18
  • 打赏
  • 举报
回复
顶~ 要想知道的话看看C++ primer吧 ,网上关于异常的也一大堆[Quote=引用 7 楼 taodm 的回复:]
新手阶段就彻底先把“异常”摆一摆吧。先集中精力学其它更有价值的话题。
[/Quote]
taodm 2009-05-18
  • 打赏
  • 举报
回复
新手阶段就彻底先把“异常”摆一摆吧。先集中精力学其它更有价值的话题。
crst_zh 2009-05-18
  • 打赏
  • 举报
回复
上面的例子是一个很简单的例子,大家能不能举一些使用异常抛出的例子,我好感受一下。
另外第二个问题,怎么保证客户代码进行异常处理?
crst_zh 2009-05-18
  • 打赏
  • 举报
回复
上面的例子是一个很简单的例子,大家能不能举一些使用异常抛出的例子,我好感受一下。
另外第二个问题,怎么保证客户代码进行异常处理?
lhy 2009-05-18
  • 打赏
  • 举报
回复
除零时系统会抛出异常,还有一些错误系统也会抛出异常。
你也可以在需要时自己抛出异常。
Sou2012 2009-05-18
  • 打赏
  • 举报
回复
throw 在你认为这是个错误,不能让程序继续的时候

上面分母为0,您认为这程序有还是没有继续的必要?

假设后面有个重要的变量,依赖说你的 除法 结果
liliangbao 2009-05-18
  • 打赏
  • 举报
回复
参考
http://soft.ccw.com.cn/programing/other/htm2008/20081015_521497.shtml
wwoo_1105 2009-05-18
  • 打赏
  • 举报
回复
异常是那种出现错误后,程序不能够进行下去了,才使用异常,捕捉异常时只做一些后续处理
如果程序还能够进行下去,就用返回值!
findcsdn 2009-05-18
  • 打赏
  • 举报
回复

在程序最上层编译器会加一个总的异常处理,如果子程序都不处理异常那么就会不停的退栈,直到最上层的处理程序,到了这里应用程序就会报错然后退出。

如果程序中间加了异常处理,则可以让程序持续运行。

程序在可能导致错误的地方要加检验代码,或者进行异常捕获,跟程序设计有关系,和别人互相协调。


Big鹏 2009-05-18
  • 打赏
  • 举报
回复

我也推荐c++ Primer
hjjdebug 2009-05-18
  • 打赏
  • 举报
回复
顶,确实应该学学异常了。
erwin1984 2009-05-18
  • 打赏
  • 举报
回复
C++ Primer 不错.

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧