【发布时间】:2018-04-27 22:27:51
【问题描述】:
我是 python 新手,我即将制作这个新程序,它会问你生日。我做了一些 try/except 子句来避免人们以字符串或大数字输入信息。我希望我的程序最终确定输入的信息是否等于日期。如果是,我希望打印它,如果不是,我希望它找出用户输入的哪一部分是错误的。因此,我在最后一个 except 子句中做了一些 if 子句,认为错误等于消息。
我想知道是否可以让程序将错误消息与错误信息进行匹配,以找出具体错误并找出输入的哪一部分出错。
我的代码如下所示:
try:
print(datetime.date(int(birthYear), int(birthMonth), int(birthDay)))
except TypeError:
if ValueError == "ValueError: month must be in 1..12":
print("Month " + str(birthMonth) + " is out of range. The month must be a number in 1...12")
if ValueError == "ValueError: year " + str(birthYear) + " is out of range":
print("Year " + str(birthMonth) + " is out of range. The year must be a number in " + str(datetime.MINYEAR) + "..." + str(datetime.MAXYEAR))
if ValueError == "ValueError: day is out of range for month":
print("Day " + str(birthDay) + " is out of range. The day must be a number in 1..." + str(calendar.monthrange(birthYear, birthMonth)))
【问题讨论】:
-
这能回答你的问题吗? Python: Catching specific exception
标签: python python-3.x datetime if-statement try-except