我有一些涉及 Try 和 except 子句的代码。当我只是在 IDLE 的控制台中运行它时,它可以完美运行,并且永远不会崩溃。但是,当我编译时它无法捕获错误,所以程序崩溃了,这让我发疯!
代码是:
if self.height == 6:
try:
libtcod.path_compute(minimap[self.mapx][self.mapy].path3,self.x+60, self.y+60,target_x+60, target_y+60)
stepx, stepy = libtcod.path_get(minimap[self.mapx][self.mapy].path3, 0)
dx = stepx - self.x - 60
dy = stepy - self.y - 60
except:
success = False
我正在使用 libtcod 库。它有时会在 stepx/stepy 位上失败,问题是,我知道它有时会在那个位上失败;它只是没有抓住它!我试过让它在 stepx 部分之前/之后打印一条消息,它会打印第一部分,但不是后者。有很多选项可以导致success = False,而且只有一个,然后我会处理如果success == False 会发生什么(这是一个游戏,测试敌人是否可以找到你,如果没有,然后它尝试别的东西)。我不知道为什么它在未编译时可以捕获它,但在编译时完全失败。有人可以向我解释一下吗?
提前致谢!