繁体   English   中英

python引发错误异常

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM