C++异常退出
代码:
void func(int *arr){
cout<<1<<endl;
auto size=0;
try {
cout<<2<<endl;
size = _msize(arr)/sizeof(*arr);
}catch(exception err){
cout<<-1<<endl;
cout<<err.what()<<endl;
size=-1;
}
cout<<size<<endl;
}
int main(){
int arr[5]={1,2,3,4,5};
func(arr);
}
运行结果(编辑器:CLion)
C:\Users\Admin\Desktop\C++\cmake-build-debug\C++.exe
1
2
进程已结束,退出代码-1073740940 (0xC0000374)
可以看到,并未捕获到异常,但中途退出了。
可以将报错部分锁定到:
size = _msize(arr)/sizeof(*arr);
size的类型auto不是问题所在;设成int同样报错。
究竟应如何修改?