首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

朋友们请进.关于try{} catch的有关问题,

2012-03-16 
朋友们请进..关于try{} catch的问题,在线等;;;;;;;;charbuf[3]try{for(inti0i 100i++)buf[i]25//在

朋友们请进..关于try{} catch的问题,在线等;;;;;;;;
char   buf[3];
try{
for(int   i=0;i <100;i++)   buf[i]=25;//在这里造成一个越界的错误
}
catch(...)
{
          ShowMessage( "fds ");//它总不执行
}


为什么catch里面的语句总不执行呢?每次运行系统都会报错,说什么访问了不可读的内存,为什么我的程序不能报错呢?

[解决办法]
C/C++不检查数组越界,不在异常范围内

[解决办法]
就你那个而言
class overflow
{
};

char buf[3];
try{
for(int i=0;i <100;i++)
{
if(i > = 3) throw voerflow();//程序会停在此处抛出异常,等待处理
buf[i]=25;
}
}
catch(overflow)
{
ShowMessage( "fds ");//它总不执行
}
[解决办法]
LZ这个似乎捕捉不到,只能人为处理,如果说为什么不检测数组越界的话,研究一下BITMAPINFO这个结构体,就知道不检测越界的好处了。

热点排行