1 int main() 2 { 3 try 4 { 5 *(int *)0 = 1; 6 } 7 catch (...) 8 { 9 std::cout << "Error code: 0xc05" << std::endl; 10 } 11 12 return 0; 13 }
在VC编译器下使用c++标准异常的时候默认不能捕捉到内存访问错误的异常,也就是我们常见的0xC05错误。
想要捕获这个异常可以使用VC的__try & __except,不过使用这个在c++开发时会产生很多问题。
解决方案:
在命令行中加入/EHa参数,注意大小写。