与 C++ 异常不同,访问冲突表示您的应用程序运行时受到损害,因此您的应用程序状态未定义。在这种情况下最好的办法是退出您的应用程序(通常为您完成,因为它会崩溃)。
我注意到可以捕获这些异常之一。例如,在 Microsoft Visual C++ 中,您可以使用 /EHa
或 __try/__catch
来执行此操作。
那么,您想捕获它们的原因是什么?据我了解,您的应用程序无法恢复。
最佳答案
您可以从访问冲突中恢复。
例如,您可以通过使用 VirtualAlloc
分配一些地址空间来创建一个动态数组,但将它指向的内存标记为不存在。然后,当您尝试使用某些内存时,您会捕获到访问冲突,映射发生访问的内存页,然后重试导致冲突的指令。
关于c++ - 为什么要捕获访问冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11109304/