[英]python raising an error exception
我正在上课的ethello游戏,正在尝试在玩家做出有效动作时引发异常,但是这种异常使我的程序崩溃,我不确定为什么。 我收到错误:
Traceback (most recent call last):
File "C:\Users\chapp_000\Desktop\Othello\OthelloUI.py", line 46, in <module>
s.makeMove(move[0],move[-1])
File "C:\Users\chapp_000\Desktop\Othello\OthelloGL.py", line 73, in makeMove
raise InvalidMoveError()
OthelloGL.InvalidMoveError
这是我的异常类:
class InvalidMoveError(Exception):
'''for handling bad moves'''
pass
这是引发异常的地方:
if self.checkCell(r,c) == 0:
if self.turn ==1:
self.board[r][c] = 2
self.turn =2
else:
self.board[r][c] = 1
self.turn =1
elif self.checkCell(r,c) !=0:
raise InvalidMoveError()
编辑:要回答一些评论,我想告诉我我的异常,以阻止我的程序崩溃,方法是说通过并检查我板上的单元格外观,如果没有棋子,则返回0;如果该玩家有棋子,则返回1或2;第46行的代码是s.makeMove(move [0],move [-1]),其中s是游戏中的无聊对象,而move是玩家从2个数字组成的列表中,表示他们想移动到的x和y位置
如果要捕获异常并对其进行处理,则需要像这样调用方法:
try:
s.makeMove(move[0], move[-1])
except InvalidMoveError:
print('You made an invalid move')
# do something else instead
否则,未处理的异常将导致程序终止。 这才是重点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.