在本练习中,当特定功能中不满足条件时,将引发手动异常。特别是,我们将把出生年份转换为年龄。
规格 在笔记本中新建一个单元格,键入以下功能
import datetime
class InvalidAgeError(Exception):
pass
def get_age(birthyear):
age = datetime.datetime.now().year - birthyear
return age
添加检查该人是否具有有效(0或更大)的检查 如果年龄无效,则引发InvalidAgeError 预期产量
>>> get_age(2099)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
__main__.InvalidAgeError
我的代码如下,但是它在加注行上显示错误,我如何获得预期的输出?
import datetime
class InvalidAgeError(Exception):
pass
def get_age(birthyear):
age = datetime.datetime.now().year - birthyear
if age >=0:
return age
else:
raise InvalidAgeError
get_age (2099)
答案 0 :(得分:1)
如评论中所述,您的代码正确。我猜您希望看到显示错误原因的错误消息。这是它的代码。
def get_age(birthyear):
age = datetime.datetime.now().year - birthyear
if age >=0:
return age
else:
raise InvalidAgeError(f'InvalidAgeError: the birthyear {birthyear} exceeds the current year ({datetime.datetime.now().year})')
请随时按照您认为合适的方式修改Exception消息。