Python面向对象编程-自定义异常使用(一) 世界要闻
来源:腾讯云 发布时间:2023-04-22 04:32:40


(资料图片仅供参考)

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

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

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

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

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面向对象编程-自定义异常使用(一) 世界要闻

Python面向对象编程-自定义异常使用(一) 世界要闻

上面的示例中,我们定义了一个名为Game的游戏类,用于处理棋盘和游戏规则。我们还定义了一个名为InvalidMov更多

2023-04-22 04:32:40
关于广东顺德永宸节能环保设备制造有限公司的行政处罚决定书 粤佛顺勒市监行罚罚字〔2023〕26号 全球信息

关于广东顺德永宸节能环保设备制造有限公司的行政

中国质量新闻网讯近日,信用中国(广东佛山)网站发布一条处罚信息,涉及广东顺德永宸节能环保设备...更多

2023-04-22 04:20:13
世界关注:让知识产权为发展赋能  2023年宁夏知识产权宣传周启动

世界关注:让知识产权为发展赋能  2023年宁夏知

人民网银川4月20日电4月20日上午,宁夏回族自治区市场监管厅(自治区知识产权局)在吴忠市举办2023...更多

2023-04-22 03:18:18
银行业危机还没完?美联储提供的紧急贷款五周来首次上升

银行业危机还没完?美联储提供的紧急贷款五周来首

美联储本周四(4月20日)公布的最新资产负债表数据显示,美联储向美国银行提供的紧急贷款五周来首次上升更多

2023-04-22 03:17:41
泣怎么读音_泣的组词-环球热资讯

泣怎么读音_泣的组词-环球热资讯

欢迎观看本篇文章,小升来为大家解答以上问题。泣怎么读音,泣的组词很多人还不知道,现在让我们一...更多

2023-04-22 03:00:15
家居丨智能家居摄像头火了? 环球热闻

家居丨智能家居摄像头火了? 环球热闻

文|王明编辑|高雅4月7日,IDC发布报告,2022年中国智能家居摄像头市场出货量超过2000万台,同比增长1 6%更多

2023-04-22 02:26:08
焦点快播:刻刀上的“徽州梦”

焦点快播:刻刀上的“徽州梦”

近日,国家级非遗木雕技艺传承人曹永盛正在雕刻木雕。徽州三雕,是徽派砖雕、石雕、木雕的统称,流...更多

2023-04-22 02:28:15
苏丹武装冲突持续多日 多方呼吁停火 天天新消息

苏丹武装冲突持续多日 多方呼吁停火 天天新消息

当地时间20日,联合国秘书长古特雷斯公开呼吁苏丹冲突各方停火至少三天,以便民众逃离冲突地区。多...更多

2023-04-22 01:56:45
全球微动态丨2023年4月21日一美金等于多少港币?

全球微动态丨2023年4月21日一美金等于多少港币?

  南方财富网为您提供美金对港币汇率最新价格详情。  2023年4月21日最新消息,美金兑换港币最新...更多

2023-04-22 01:42:39
天天资讯:得克萨斯无证持枪_得克萨斯两起枪击

天天资讯:得克萨斯无证持枪_得克萨斯两起枪击

1、外媒7月28日报道,当地时间周五(27日),美国得克萨斯州的罗布斯敦市发生两起明显有关联的枪击...更多

2023-04-22 01:04:32

© 2012-2020 财经快报网 版权所有

网站联系邮箱:435 227 67@qq.com

琼ICP备2022009675号-3