c++异常处理

[复制链接]
查看11 | 回复3 | 2009-9-23 14:57:10 | 显示全部楼层 |阅读模式
编译时把把/EHsc换成/EHa 或者用__try __except默认C++ 异常处理机制是捕捉不到硬件异常的---看错了... throw必须throw数据,否则没办法catch。编译用/EHa的话 try
{
float c=a/b;
} catch(...)
{
cout<<"b can't be zero"<<endl;
}
直接这样就可以了
回复

使用道具 举报

千问 | 2009-9-23 14:57:10 | 显示全部楼层
1、catch(...)基本可以截获所有抛出的异常,但只不过是不知道异常类型而已。2、因为,throw后面没有写异常类型,所以不会被catch住。如果变为throw 0,就可以被catch截获到了。这也算是1的前提吧,呵呵
回复

使用道具 举报

千问 | 2009-9-23 14:57:10 | 显示全部楼层
因为你没有声明throw和catch的异常类型,所以catch的时候捕捉不到
回复

使用道具 举报

千问 | 2009-9-23 14:57:10 | 显示全部楼层
不会跳出对话框啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行