c++异常除以0

要不依赖于系统,不论在何种系统中运行当遇到除以0的情况都会以同样的方式予以处理要怎么自定义一个异常类,当除以0的时候报错是C++不是JAVA要有详细解释,新手。,... 要不依赖于系统,不论在何种系统中运行当遇到除以0的情况都会以同样的方式予以处理
要怎么自定义一个异常类,当除以0的时候报错
是C++不是JAVA
要有详细解释,新手。,
展开
 我来答
kyotrue
2014-04-11 · TA获得超过1.5万个赞
知道大有可为答主
回答量:2.3万
采纳率:75%
帮助的人:6887万
展开全部
C++没有什么异常类,又不是JAVA。。。

除以0错误,不是语言的错误,是CPU执行指令在这种情况下就会抛出软中断,语言只是做相应处理,C++把它作为异常。

Linux我不知道,Windows下的话,你可以自定义全局异常处理函数,用SetUnhandledExceptionFilter设置,然后实现你的异常处理函数。查查MSDN函数用法吧。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
愉锋n
2014-04-11 · TA获得超过362个赞
知道小有建树答主
回答量:274
采纳率:50%
帮助的人:225万
展开全部
你需要的那个类其实就一个函数,调用除法。
只是在除之前,先check一下除数是否为0:
如果为0直接报错,就不去除了,
如果不为0 ,再去除,返回结果,最好double型。
追问
这样用If也可以解决
但是我想要用try catch
要有自己定义的异常类,怎么弄
因为系统有些除以0是不异常的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zero945493
2014-04-11 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:92
采纳率:100%
帮助的人:86.3万
展开全部
#include "stdafx.h"
#include <windows.h> // for EXCEPTION_ACCESS_VIOLATION
#include <excpt.h>
#include <iostream>
using namespace std;

int main(int argc, _TCHAR* argv[])
{
int i = 1;
int j = 0;

__try
{
i /= j;
}
__except(GetExceptionCode() == EXCEPTION_INT_DIVIDE_BY_ZERO ?
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
{
cout << "除0异常" << endl;
}

return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式