首页 > 解决方案 > 尝试 catch 不起作用,在 game1.exe 中的 0x00476F1E 处引发异常:0xC0000005:访问冲突读取位置 0x00000004

问题描述

代码:

try {
    SDL_SetColorKey(surfaces[folderCnt][surfacesCnt], SDL_TRUE, SDL_MapRGB(surfaces[folderCnt][surfacesCnt]->format, 255, 0, 255));
}
catch (int err) {

}

错误:在 game1.exe 中的 0x00476F1E 处引发异常:0xC0000005:访问冲突读取位置 0x00000004。

当surfacesCnt = 10 时,它会抛出错误。那是因为没有表面 10。我知道这一点,我想捕获异常并处理下一个表面 (surfacesCnt = 11)。

为什么 try catch 语句没有捕捉到错误?这将在 Python 和 Pascal 中完美运行。

标签: c++try-catch

解决方案


推荐阅读