您的位置: 首页> 资讯 > 正文

当前速递!Python面向对象编程-自定义异常使用(一)

2023-04-22 15:25:14 来源:腾讯云


(相关资料图)

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

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

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

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

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的游戏类,用于处理棋盘和游戏规则。我们还定义了一个名为InvalidMov
2023-04-22
21-22赛季英超营收:曼城6.13亿镑居首,利物浦5.94亿曼联5.83亿-天天快资讯
直播吧4月22日讯TheAthletic报道了英超各俱乐部21-22赛季的收入,曼城6 13亿镑居首,利物浦5 9
2023-04-22
华为P60Pro立功,卫星通信帮用户脱险,网友:友商何时才跟进?
其实去年华为发布卫星通信时,网上一直有声音质疑“噱头大于实际”,因为大多数人都在城市里生活,信号覆盖
2023-04-22
excel怎么把表格旋转90度 excel表格旋转90度
今天来聊聊关于excel怎么把表格旋转90度,excel表格旋转90度的文章,现在就为大家来简单介绍下excel怎么把表
2023-04-22
新公司的人事问我要目前工资的银行流水,给不给?
社会中有很多真知灼见,但坑更多。用到我们求职当中来,主要知识点也有两三百个,如果将整个职场展开,那就
2023-04-22
铁西区教育系统第二届微光读书节正式启动
张文魁摄本报讯(沈阳日报、沈报全媒体记者宋宇)4月21日,沈阳市教育系统2023年全民阅读季活动暨铁西区教
2023-04-22
  中新网海口1月23日电(符宇群)海南省第六届人民代表大会第五次会议23日在海口举行第二次全体会议。海南省人民检察院检察长张毅在作报告
2022-01-24
  中新网太原1月23日电 (高雨晴 冉涌 张鹏宇)记者23日从国网山西省电力公司获悉,该公司冬奥保电应急发电队伍已到达河北张家口赛区,
2022-01-24
  中新网西宁1月23日电 (记者 李江宁)据青海省地震局23日消息,中国地震台网正式测定,北京时间2022年1月23日10时21分,在青海海西州德
2022-01-24
  中新网贵阳1月23日电 (周燕玲)对外开放,是内陆开放型经济试验区贵州正在召开的两会热点词汇,如何拓展海内外“朋友圈”助力贵州经济
2022-01-24
温馨生活好young 厦门推广文旅产品火爆全网
  中新网厦门1月23日电 (记者 杨伏山)“冬日暖阳厦门好young”福建省内宣传推广线下活动22日精彩收官。主办方称,本次活动火爆全网及福
2022-01-24
宁夏非遗传承人:刻刀里的守正创新更有“年味”
  (新春见闻)宁夏非遗传承人:刻刀里的守正创新更有“年味”  中新网银川1月23日电 题:宁夏非遗传承人:刻刀里的守正创新更有“年味
2022-01-24
沧州:8个重大科技专项项目确定 引领经济社会高质量发展
为充分发挥科技在经济社会高质量发展中的引领和支撑作用,沧州市确定8个项目为2021年全市重大科技专项项目。这8个重大科技专项项目分别为:
2022-03-19
  中新网海口1月23日电(王子谦 符宇群)海南省高级人民法院院长陈凤超23日说,2021年海南法院为自贸港建设提供坚强司法保障,全年有效管
2022-01-24
  新华社武汉1月23日电(记者王贤)随着春节假期临近,从广州、深圳等地返回湖北的旅客较多。为此,23日,武汉站、汉口站、襄阳东站、十堰
2022-01-24
  1月22日0—24时,广东省新增本土确诊病例3例和本土无症状感染者1例,均为珠海报告。23日,珠海市疫情防控新闻发布会上,珠海市政府副秘
2022-01-24
青海海西州德令哈市发生3.7级地震
  据中国地震台网正式测定,1月23日11时58分在青海海西州德令哈市发生3 7级地震,震源深度9千米,震中位于北纬38 40度,东经97 35度。
2022-01-24
  北京2022年冬奥会和冬残奥会颁奖花束已于近期完成交付。与传统的鲜切花不同,这些花束全部采用上海市非物质文化遗产“海派绒线编结技艺
2022-01-24
今日播报!快讯:东方雨虹王巍荣获2022年“工匠先锋”称号
乐居财经刘治颖12月28日,由乐居财经主办的“奋发前行——2022(第六届)中国地产 家居 物业经理人评选”在线上隆重举行。会上,2022年工匠先
2022-12-30
万达普惠贷款逾期4年还不起会上征信吗
网贷逾期一般会上征信,有些借贷机构在用户逾期后一天后就会上报给征信机构,而有些借贷机构则是会在几天后上报给征信机构,因为有些借贷机构可
2022-12-30
天天观速讯丨2023沧州元旦高速收费吗?
2023年元旦高速收费。一年当中只有在春节、清明节、五一节、国庆节四个节假日,七座以下(含七座)小客车走高速公路可以免费。根据国家颁发的《
2022-12-29
环球速递!我国成功发射试验十号02星
我国成功发射试验十号02星。中国西昌卫星发射中心供图胡煦劼摄人民网北京12月29日电(记者赵竹青)北京时间2022年12月29日12时43分,我国在西
2022-12-29
全球视讯!部队文职报名如何注册?附入口
怎么进行用户注册?注册报名入口:军队人才网报考人员报名,必须进行“用户注册”,注册新用户直接点击报名系统登录页面右下方“用户注册”按钮
2022-12-29
环球微头条丨中国恒有源集团(08128):上海港泽不服一审判决提起上诉
中国恒有源集团(08128)发布公告,恒有源投资于2022年12月28日收到北京市
2022-12-29
  中新网西宁1月23日电 (记者 孙睿)据青海省地震台网测定,2022年1月23日10点21分(北京时间)在青海省海西州德令哈市(北纬38 44度,东经
2022-01-24
江西南昌:市民赏年画迎新年 书法家挥毫送春联
  (新春见闻)江西南昌:市民赏年画迎新年 书法家挥毫送春联  1月23日,“赏年画过大年”新年画作品联展江西南昌站活动在江西省文化馆
2022-01-24
  中新网成都1月23日电 (祝欢)成都市第十七届人民代表大会第六次会议23日在成都举行,成都市中级人民法院院长郭彦与成都市人民检察院检
2022-01-24
列车临时停车3分钟救旅客
  (新春见闻)列车临时停车3分钟救旅客  中新网广州1月23日电 (郭军 黄伟伟)“车长,车长,4号车厢有位旅客腹涨难忍,身体不舒服”…
2022-01-24
女子背负命案潜逃24年 因涉疫人员核查落网
  中新网湖州1月23日电(施紫楠 徐盛煜 赵学良)1998年7月,犯罪嫌疑人杜某因家庭琐事,用菜刀将自己的弟媳砍伤致死。案发后,她从老家河
2022-01-24
广东“00后”雄狮少年锤炼功夫迎新春
  (新春见闻)广东“00后”雄狮少年锤炼功夫迎新春  中新社广州1月23日电 题:广东“00后”雄狮少年锤炼功夫迎新春  作者 孙秋霞 
2022-01-24
05-20 中国旅游日!河北创新发展“旅游+” 打造“京畿福地 乐享河北”品牌
中国旅游日!河北创新发展“旅游+” 打造“京畿福地 乐享河北”品牌
5月19日是第12个中国旅游日。今年中国旅游日主题为感悟中华文化,享受美好旅程。河北内环京津,外环渤海,携太行燕山之威,挟畿辅拱卫之要 [详细]
05-20 西湖游船“国潮宋风”特色夜游上线 体验穿越宋风豪华画舫之旅
西湖游船“国潮宋风”特色夜游上线 体验穿越宋风豪华画舫之旅
西湖之胜,晴湖不如雨湖,雨湖不如夜西湖。想要一边沐着晚风,一边乘坐游船感受西湖夜色的别样美景吗?那就来体验一把穿越宋风的豪华画舫之 [详细]
05-20 杭州:露营成今年最大热点 “城市露营”模式受年轻人追捧
杭州:露营成今年最大热点 “城市露营”模式受年轻人追捧
一顶帐篷、一副桌椅、一张地垫,寻个湖畔草坪,就能体验时下最热的旅行方式——露营。五一假期,杭州灵山景区铜鉴湖九曲梅韵和海棠融春两块 [详细]
03-19 2022岳阳国际旅游节开幕 特色农产品展销等系列活动目不暇接
2022岳阳国际旅游节开幕 特色农产品展销等系列活动目不暇接
今天,天下洞庭岳阳市君山区第九届良心堡油菜花节暨2022岳阳国际旅游节开幕,菊红、粉红、水红、桃红、紫色、白色等七色组成的4万亩花海在 [详细]
03-19 2022年郴州计划重点推进文旅项目101个 总投资354亿元
2022年郴州计划重点推进文旅项目101个 总投资354亿元
3月16日,我市举行全市文旅项目和城市大提质大融城项目集中开工仪式,市委书记吴巨培宣布项目开工。郴州嘉合欢乐世界、仙福路工地清风徐来 [详细]
03-19 宿州泗县深入推进文旅融合发展 擦亮城市品牌
宿州泗县深入推进文旅融合发展 擦亮城市品牌
近年来,泗县以争创安徽省文化旅游名县为目标,深入推进文旅融合发展,努力擦亮水韵泗州 运河名城城市品牌,全县文化旅游业实现高质量发展 [详细]
03-19 淡季不忘引流 京郊民宿市场有望迎来回暖
淡季不忘引流 京郊民宿市场有望迎来回暖
旅游淡季中的京郊民宿有望成为市场中最先复苏的板块。3月17日,北京商报记者调查发现,虽然正值旅游淡季,且受疫情变化的影响,不过各家民 [详细]