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 セクションの前後にメッセージを出力しようとしましたが、最初の部分は出力されますが、後者は出力されません。成功 = False につながる可能性のあるオプションは多数あり、これは 1 つだけです。その後、成功 == False の場合に何が起こるかを扱います (これはゲーム用で、敵があなたにパスできるかどうかをテストし、そうでない場合は、その後、別のことを試みます)。アンコンパイル時にキャッチできるのに、コンパイル時に完全に失敗する理由がわかりません。誰かが私にこれを説明してもらえますか?
前もって感謝します!