Python面向对象编程-自定义异常使用(一)
2023-04-22 07:41:43 来源:腾讯云
【资料图】
自定义异常可用于多种目的。
定义文件时,当文件的格式不正确时,我们可以抛出自定义异常来指示错误。
在编写网络应用程序时,如果网络请求失败,我们可以抛出自定义异常来指示错误。在编写数据库应用程序时,如果数据库连接失败,我们可以抛出自定义异常来指示错误。在编写游戏时,如果玩家尝试在不允许的情况下执行某个操作,我们可以抛出自定义异常来指示错误。下面是一个使用自定义异常的示例,它演示了如何在游戏中处理玩家错误操作:
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面向对象编程-自定义异常使用(一)
-
嚎啕大哭还是号啕大哭
-
【世界说】英媒:多位美官员发表种族主义言论 渴望开历史倒车虐杀黑人 引发抗议
-
金斯瑞生物科技(01548.HK):已完成Probio Cayman C轮融资交割
-
【快播报】WTT澳门站爆出大冷门,法国19岁新星勒布伦击败樊振东
-
全球微资讯!自我介绍模板大学生_三分钟自我介绍
-
主播说山东丨乳山的风有多大?吹出千亿级产业集群
-
iphone手机哪个型号好_iPhone手机哪个型号好用呢
-
环球热门:美国银行:截至4月19日的一周内,八周来首次出现653亿美元的现金周流出,为2月22日以来的最大值
-
55岁创业,84岁的她今年底要纳税100亿
-
座椅屋顶操场边,北京首所碳中和试点校处处藏“玄机”|焦点
-
以数智之力助力成长型企业高效发展
-
斯涅尔_关于斯涅尔简介
-
天天实时:全国劳动卫生与职业病学术会议在渝举行
-
4月21日基金净值:嘉实价值长青混合A最新净值0.8742,跌2%
-
平凡事物中的美小练笔20字_平凡事物中的美小练笔
-
苹果电脑销量大跌40% PC市场无战事
-
aveo雪佛兰是什么车 avalanche雪佛兰
-
满易贷逾期一天会不会影响到征信|全球热消息
-
从“浙”里出发,看税惠赋能高质量发展 当前速读
推荐内容
- Python面向对象编程-自定义异常使用(一)
- 嚎啕大哭还是号啕大哭
- 【世界说】英媒:多位美官员发表种族主义言论 渴
- 金斯瑞生物科技(01548.HK):已完成Probio Cayman
- 【快播报】WTT澳门站爆出大冷门,法国19岁新星勒
- 全球微资讯!自我介绍模板大学生_三分钟自我介绍
- 主播说山东丨乳山的风有多大?吹出千亿级产业集群
- iphone手机哪个型号好_iPhone手机哪个型号好用呢
- 环球热门:美国银行:截至4月19日的一周内,八周来
- 55岁创业,84岁的她今年底要纳税100亿
- 座椅屋顶操场边,北京首所碳中和试点校处处藏“玄
- 以数智之力助力成长型企业高效发展
- 斯涅尔_关于斯涅尔简介
- 天天实时:全国劳动卫生与职业病学术会议在渝举行
- 4月21日基金净值:嘉实价值长青混合A最新净值0.87
- 平凡事物中的美小练笔20字_平凡事物中的美小练笔
- 苹果电脑销量大跌40% PC市场无战事
- aveo雪佛兰是什么车 avalanche雪佛兰
- 满易贷逾期一天会不会影响到征信|全球热消息
- 从“浙”里出发,看税惠赋能高质量发展 当前速读
- 2023上海车展观察之一:在确定的新能源赛道 跑出
- 世界实时:气泡水和汽水的区别(气泡水和苏打水的
- 世界微资讯!国家消防救援局:坚决遏制火灾多发态
- 半导体、AI、科技股大幅走弱!已有重仓基金开启限
- 肾萎缩有哪些症状_肾萎缩是怎么回事
- 北京旅游网官网_北京旅游网免费门票|全球播资讯
- 人工智能能否超越人脑?东莞松山湖掀起一场“脑风
- 环球热文:距离瓦拉内离开皇马的日期似乎越来越近
- 今日热门!浙商证券给予精工科技买入评级 精工科
- 特锐德4月21日盘中涨幅达5%
- 红色引擎驱动建设提速 松江枢纽服务中心新建工程
- 全球新资讯:中信证券:出版行业有望依托AI技术发
- 【独家】专访:务实的治理体系使中国有效应对外部
- 国家文物局:亚洲文化遗产保护联盟大会将在西安召
- 住房公积金怎么查封存时间_住房公积金怎么查
- 阎维文父亲简谱教唱_阎维文父亲简谱
- 倒计时2天!从“非遗+”认识福建!
- 桑植县陈家河镇大屋坝村:共谱同心美丽乡村曲 打
- 天佑德酒更名提升品牌价值后净利增17% 4个月三次
- 【乡村振兴】黄南:走产业融合之路实现强村富民_
油气
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
经济
-
中新网杭州10月18日电 (王题题 胡燕婕)云天收夏色,浅秋正渐浓。10月18日,浙江杭州市西湖游船有限公司推出的惠民多站点“西湖环湖游
-
中国税务机关处罚一名艺人经纪人 中新社北京10月18日电 (记者 赵建华)上海市税务局第一稽查局前期在艺人郑爽偷逃税案件检查过程中
-
中新网兰州10月18日电 (闫姣 艾庆龙 吉翔)“红山白土头,黄河向西流。”不少人疑问,天下黄河向东流,为何甘肃永靖县这段黄河却向西
-
中新网北京10月18日电 《清华城市健康设施指数》18日在北京发布。报告成果显示,城市健康设施指数领先城市以中心城市和东部沿海城市
-
中新网安徽黄山10月18日电 (刘浩 黄启宝 汪娜)10月17日至18日,安徽省黄山市当地民警先后救助国家一级保护动物白锦长尾稚和野生梅花