区别日期转换中的具体错误

【问题描述】l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

请自定义异常类区别月份异常或日期异常。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

区别日期转换中的具体错误输入数据:l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

2021-13-14l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

区别日期转换中的具体错误输出结果:l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

月份错误l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【题前思考】l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

根据问题描述,填写表6-3-3。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

表6-3-3 问题分析l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

区别日期转换中的具体错误l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【解题思路】l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

自定义两个异常类:MonthError类和DayError类。再定义一个类用来创建日期对象,同时检查传入的数据里的月份和日期是否合法。如果遇到不合法日期,利用raise语句触发异常;如果合法创建日期对象并返回它。最后引入try-except-else块。捕捉抛出的异常,按异常类的不同处理异常。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【程序代码】l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

区别日期转换中的具体错误l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

区别日期转换中的具体错误l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【代码分析】l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

①:导入模块datetime。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

②:自定义异常类MonthError、DayError。两个类都继承Exception类,魔法方法__str__( )用于以字符串的形式表示异常对象,可以用以下代码输出字符串表示的异常。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

区别日期转换中的具体错误l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

异常类可以有其他类有的一切属性和方法,用于表示和处理异常,如自定义属性、方法和__init__( )等魔法方法。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

③:定义类MyDate2。在类中定义静态方法def str2date(sdate):接收字符串,通过字符串切片和类型转换获取年、月、日数据,再根据这些数据创建日期对象,并返回对象。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

④:用列表dnums表示各月的天数,用dnums[month]表示month月的天数。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

⑤:检查月份,是否为1~12的整数,不是就用raise语句触发异常MonthError。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

⑥:闰年的2月比平年的2月多1天。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

⑦:如果日期超过各月的最大天数则抛出异常DayError。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

⑧:在try子句中,调用MyDate2类的静态方法str2date('2020-12-31')创建日期对象,如果有异常抛出则捕获。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

⑨:捕获MonthError或DayError命名为me,并以字符串形式输出异常。如果要在一个except子句中捕获多个异常可以用圆括号将多个异常括起来。l1i100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

关 键 词

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢