Python面向对象编程-自定义异常使用(一)
【资料图】
自定义异常可用于多种目的。
定义文件时,当文件的格式不正确时,我们可以抛出自定义异常来指示错误。
在编写网络应用程序时,如果网络请求失败,我们可以抛出自定义异常来指示错误。在编写数据库应用程序时,如果数据库连接失败,我们可以抛出自定义异常来指示错误。在编写游戏时,如果玩家尝试在不允许的情况下执行某个操作,我们可以抛出自定义异常来指示错误。下面是一个使用自定义异常的示例,它演示了如何在游戏中处理玩家错误操作:
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面向对象编程-自定义异常使用(一)上面的示例中,我们定义了一个名为Game的游戏类,用于处理棋盘和游戏规则。我们还定义了一个名为InvalidMoveError的自定义异常,用于处理玩家
-
京东方后,王东升西安“芯”创业每经记者:张静每经编辑:贺娟娟“国产替代”是最近国内产业圈最火的词,或者说一直都是。纵观中国数十年发展历程,先实现“国产替代”后自...
-
世界热头条丨新生婴儿的正常脉搏为每分钟_新生儿的正常脉搏为每分钟_次1、正常情况下心率和脉搏是一致的,也就是说心跳次数和脉搏次数是相同的。2、正常新生儿心率波动范围比较大,出生时心率在10
-
商务部回应:严重关切近日,美国国会下属美中经济与安全审议委员会(US-ChinaEconomicandSecurityReview
-
维海德跌11.5% 上市即巅峰超募5.5亿方正证券保荐维海德跌11 5%上市即巅峰超募5 5亿方正证券保荐
-
什么是PVC面料?_男生成人礼应该送什么礼物合适一个穿着红色皮夹克的男人开着他的红色跑车。PVC,即聚氯乙烯,是由科学家WaldoSemon在1920年代开发的。它在1950年代和60年代获得了更主流的追
-
焦点观察:因涉嫌职场霸凌 英国副首相兼司法大臣宣布辞职中新网4月21日电综合报道,当地时间21日,英国副首相兼司法大臣多米尼克·拉布宣布辞职,并表明将继续支持英国首相苏纳克和英国政府
-
天丝是什么成分_天丝是啥成分|世界热点解答:1、天丝纤维是一种新型的人造纤维,1989年被国际人造纤维局命名为LYOCELL。2、来自树木的纤维素是通过有机溶
-
环球聚焦:终于,基金经理开始用AI写季报了来源:上海证券报人工智能几乎已无处不在!在2023年的基金一季报中,有一份由ChatGPT撰写的季度报告。虽然ChatGPT仅仅是负责了其中一部分内容
-
世界观察:潭头乡_关于潭头乡介绍1、潭头乡,隶属广西壮族自治区柳州市融安县,地处融安县南部,东靠大良镇,南连柳城县的龙头镇、伏虎华侨农场。西邻融水苗
-
民警破案后对监控比“耶”回应小偷挑衅_全球要闻近日,广西北海,4名男子在实施盗窃后,竟嚣张地对着监控摄像头比“耶”。民警发现情况,立即侦察并快速抓获嫌疑人。在嫌疑人指
-
天天快讯:权益基金一季报出炉!泓德基金基金经理观点速递一季度A股市场延续了去年四季度以来的反弹,幅度更大,方向更集中,万得全A指数上涨6 47%,科创50指数上涨12 67%。行业指数中,以计算机、传媒
-
【聚看点】宁德时代新电池:还是高镍路线,但这次不怕自燃?“飞机什么时候用电了,就什么时候换电动车”,这是很多对电动车持保守态度的消费者,常常挂在嘴边的一句玩笑话。然而眼下这句玩笑似乎有可...
-
专访:务实的治理体系使中国有效应对外部挑战——访巴西圣保罗州立大学经济与国际研究所主任马科斯·皮雷斯新华社巴西利亚4月20日电专访:务实的治理体系使中国有效应对外部挑战——访巴西圣保罗州立大学经济与国际研究所主任马科斯·皮雷斯 新...
-
焦点快播:手机没有屏幕怎么连接电脑_小米手机插电脑不显示你们好,最近小未来发现有诸多的小伙伴们对于手机没有屏幕怎么连接电脑,小米手机插电脑不显示这个问题都颇为感兴趣的,今天小活
-
哪个关键词与你紧密相关?从一季度经济数据看生活消费 焦点2023年一季度的经济数据陆续公布,从数据中可以看到,中国经济总体运行仍在合理区间,具备了强大活力和韧性。线上消费数据同样亮眼,国家邮政
-
幼儿园大班进餐工作计划(优选8篇)幼儿园大班进餐工作计划第1篇一、指导思想后勤工作是做好幼儿园管理工作和教育工作的基础所在,在园领导的关心支持和教师们的积极配合下,在本
-
泰山南通爆发大规模冲突 费莱尼架肘干翻对手搜狐体育消息,北京时间4月21日,中超联赛第二轮,山东泰山对阵南通支云,最终泰山1-1战平对手,未能在主场收获首胜,在比赛临近结束的阶段,
-
热议:企业文化培训心得体会1000字(企业文化培训心得)1、去百度文库,查看完整内容>内容来自用户:张丽企业文化培训心得 企业徳文化培训心得 2014年7月23日,陕汽集团公司王总监到铜川东风公
-
【独家焦点】【上帝不在】若米兰赢得欧冠,不在欧冠名单的伊布不会获得奖牌【上帝不在】如果AC米兰赢得欧冠冠军,伊布将不会获得奖牌。他不在俱乐部本赛季的欧冠名单上。…
-
郑秀文 50 岁拿金像奖,杨紫琼 60 岁拿奥斯卡,大龄女演员正在崛起 世界热消息在刚过去的第41届香港电影金像奖颁奖礼上,50岁的郑秀文凭借《流水落花》拿到了她演艺生涯中的第一个金像奖影后,在此前她9度入围金像奖最佳女
-
天天观天下!挪揄的拼音是什么_请问一下挪揄怎么读1、揶揄,读音:yéyú。2、揶揄,耍笑、嘲弄、戏弄、侮辱之意;是对人的一种戏弄,嘲笑时用语。3、释义揶〈动〉(形声
-
盒马环保新动作 为多款商品挂出“碳足迹身份证”盒马环保新动作为多款商品挂出“碳足迹身份证”
-
【环球热闻】回合制游戏_回合制1、回合制是一种游戏打怪形式,所有游戏内玩家轮流自己的回合,只有轮到自己的回合,才能够进行操纵。2、早期战略由于硬件运算
-
万亿元睡眠经济市场规模持续增长 麒盛科技旗下舒福德智能床加速布局国内市场-天天速看料4月19日,麒盛科技旗下舒福德智能床全国首店在北京居然之家正式开业。此次开业活动以“冬奥黑科技点亮北京智能睡眠”为主题,通过火炬接力...
-
苹果AR VR头戴式设备将配备运动游戏和健身应用程序|天天新动态据彭博社报道,Apple正在努力为其即将推出的混合增强现实和虚拟现实的耳机开发各种软件和服务,希望通过使用该设备独特的3
-
全球今头条!江汉路商圈“小店经济”火爆,江汉区个体工商户增长超八成21日中午11时,在江汉路地铁站负一层商业区,主打美食的江汉路嗨吃街开始热闹起来,烤生蚝、羊肚包肉、泡椒猪蹄……空气中满
-
环球新动态:欧晓涛1、欧晓涛,男,辽宁抚顺人,1980年2月11日出生,中国自由式滑雪第一批运动员。2、我国男子运动员中第一个取得
-
久盛电气(301082.SZ):2022年度净利降10.16%至7900.38万元 拟10派2元格隆汇4月21日丨久盛电气(301082 SZ)公布2022年年度报告,2022年公司实现营业收入19 11亿元,同比下
-
科沃斯4月21日盘中跌幅达5% 要闻速递以下是科沃斯在北京时间4月21日14:41分盘口异动快照:4月21日,科沃斯盘中跌幅达5%,截至14点41分,报76 58元,成交2 51亿元,换手率0 57%。注