关于异常处理的问题
int main(int argc, char* argv[]) {
char buff1[16];
char buff2[16];
try{
memcpy(buff1,buff2, -1);
}catch(...){
printf( "11111\n ");
}
printf( "22222\n ");
return 0;
}
上面的程序输出为
22222
问题1:memcpy(buff1,buff2, -1);这里不是会有异常吗?为什么不会显示 11111 ?
问题2:我需要这样,即使printf( "22222\n ")上面的代码执行时候出现错误,也会执行printf( "22222\n "),这应该怎么做呢?
谢谢。
[解决办法]
那个不是异常
想想就知道,函数内判断一下就能解决的问题
不像除0这样处理不了的事情
[解决办法]
这个会溢出吧,-1是0xffffffff
[解决办法]
you can check the return value of memcpy
if you can get it ,it has been handled
otherwise, maybe it 's exception