世界微头条丨Python面向对象编程-自定义异常使用(一)
腾讯云 2023-04-22 10:34:03


(资料图片仅供参考)

自定义异常可用于多种目的。

定义文件时,当文件的格式不正确时,我们可以抛出自定义异常来指示错误。

在编写网络应用程序时,如果网络请求失败,我们可以抛出自定义异常来指示错误。在编写数据库应用程序时,如果数据库连接失败,我们可以抛出自定义异常来指示错误。在编写游戏时,如果玩家尝试在不允许的情况下执行某个操作,我们可以抛出自定义异常来指示错误。

下面是一个使用自定义异常的示例,它演示了如何在游戏中处理玩家错误操作:

class InvalidMoveError(Exception):    def __init__(self, message):        self.message = messageclass Game:    def __init__(self):        self.board = [["", "", ""] for i in range(3)]        self.current_player = "X"        def display_board(self):        for row in self.board:            print(row)        def make_move(self, row, col):        if row < 0 or row > 2 or col < 0 or col > 2:            raise InvalidMoveError("Invalid move. Please choose a row and column between 0 and 2.")        if self.board[row][col] != "":            raise InvalidMoveError("Invalid move. That square is already taken.")                self.board[row][col] = self.current_player                if self.current_player == "X":            self.current_player = "O"        else:            self.current_player = "X"        def is_game_over(self):        for i in range(3):            if self.board[i][0] == self.board[i][1] == self.board[i][2] != "":                return True            if self.board[0][i] == self.board[1][i] == self.board[2][i] != "":                return True        if self.board[0][0] == self.board[1][1] == self.board[2][2] != "":            return True        if self.board[0][2] == self.board[1][1] == self.board[2][0] != "":            return True        return Falsegame = Game()while not game.is_game_over():    game.display_board()    row = int(input("Enter row (0-2): "))    col = int(input("Enter column (0-2): "))    try:        game.make_move(row, col)    except InvalidMoveError as e:        print("Error:", e.message)game.display_board()print("Game over!")

上面的示例中,我们定义了一个名为 Game的游戏类,用于处理棋盘和游戏规则。我们还定义了一个名为 InvalidMoveError的自定义异常,用于处理玩家的无效移动。

make_move方法中,如果玩家选择了无效的行或列,则抛出 InvalidMoveError。如果玩家选择了已经被占用的方格,则也会抛出 InvalidMoveError。在 while循环中,我们不断调用 make_move方法,并在出现异常时捕获和处理异常。在异常处理程序中,我们将打印错误消息,告诉用户出现了什么错误。

世界微头条丨Python面向对象编程-自定义异常使用(一)

2023-04-22

【环球新要闻】孔子传

2023-04-22

世界热文:SMM日评:铬铁成本支撑与自身供给过剩并存 铁价持稳运行

2023-04-22

焦点简讯:孔毅

2023-04-22

环球今热点:tct低度鳞状上皮内病变严重吗_低度鳞状上皮内病变严重吗

2023-04-22

每日报道:颧红是什么疾病的症状_颧红

2023-04-22

环球微速讯:2023南阳五一大型活动汇总(持续更新)

2023-04-22

环球播报:生态文明教育成为学校“金名片”

2023-04-22

焦点速看:2023年南宁华流音乐节热门问答(入场时间+结束时间)

2023-04-22

关注:豪放洒脱大气的词语_豪放洒脱大气的诗句

2023-04-22

世界观察:北京故宫售罄了还会放票吗?

2023-04-22

每日热闻!支付宝怎么拉新人赚钱?技巧有哪些?

2023-04-22

世界聚焦:安踏体育(02020.HK):4月21日南向资金增持141.82万股

2023-04-22

【世界时快讯】小板凳,大关爱!临沂柳青苑小学这项服务好评如潮

2023-04-22

全球视讯!股票行情快报:东华能源(002221)4月21日主力资金净买入1448.42万元

2023-04-22

当前观点:游客入住酒店发现房内贴着符文 店方:用来求平安的

2023-04-22

世界聚焦:DC 超级英雄电影《闪电侠》定档 6 月 16 日内地上映,同步北美

2023-04-22

热资讯!今日吴亦凡rap怎么样_吴亦凡rap实力

2023-04-22

焦点精选!全信股份(300447):4月21日北向资金增持4.94万股

2023-04-22

环球热讯:2023浙江湖州市德清县自主择优招聘高中教师拟聘用人员名单公示

2023-04-22