捕获异常(解决立即给分,争取今天结帖)

大道如海 2004-10-28 06:50:26
突然发现一个很简单的问题自己还不会,郁闷!
异常和系统错误有否联系和不同
我如何捕获系统错误,比如除数为0

int i=0;
int j=10/i;

如何捕获
...全文
106 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
大道如海 2004-10-28
  • 打赏
  • 举报
回复
下班了,结贴了!
renheihei 2004-10-28
  • 打赏
  • 举报
回复
mark
  • 打赏
  • 举报
回复
标准没有定义. WIN32 下可以捕获 SEH 异常,否则GP, linux 应该是有个signal, 许多环境下 coredump.
短歌如风 2004-10-28
  • 打赏
  • 举报
回复
我并没有说一定无法捕获这个异常,我是说它不一定会抛出异常,与运行的系统或者编译器有关,最坏的可能是程序直接崩溃,因此不应该让它发生。
carylin 2004-10-28
  • 打赏
  • 举报
回复
可以捕获这个异常的。
darkstar21cn 2004-10-28
  • 打赏
  • 举报
回复
try {
int i = 0;
int j = 10 / i;
}
catch (...) {
if (0 == i)
cerr << "div by zero" << endl;
}
大道如海 2004-10-28
  • 打赏
  • 举报
回复
也就是说无法捕获这样的错误!
是吗!
短歌如风 2004-10-28
  • 打赏
  • 举报
回复
这种代码属于“未定义”行为,其结果根据系统和编译器的不同而不同,未心会抛出异常。如果你int j = 10 / i之前i是可能等于0的,你自己应该进行判断。

64,643

社区成员

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

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