我的多次try ... except块不起作用,我不确定为什么:
from datetime import datetime
class Format_DateTime:
def __init__(self):
pass
def __call__(self, text):
text = text.replace(".", "-")
text = text.replace("/", "-")
text = text.replace(" ", "-")
try: output = datetime.strptime(text, '%d-%m-%Y')
except ValueError: output = datetime.strptime(text, '%d-%b-%Y')
except: output = "Please input date as follows: day mth year, e.g. 07 Mar 2020"
return output
'''EXAMPLE USAGE:'''
if __name__ == "__main__":
format_datetime = Format_DateTime()
print(format_datetime('8 04 20'))
上面的代码旨在抛出我的错误消息,但又抛出另一个 ValueError
异常,我该如何使其抛出我的消息?
答案 0 :(得分:0)
每次日期转换尝试都需要其自己的异常处理程序。最好避免无论如何将try / except代码放在一行上(它读起来更好,更容易陷入困境),但是对于这个问题,您必须
def __call__(self, text):
text = text.replace(".", "-")
text = text.replace("/", "-")
text = text.replace(" ", "-")
try:
output = datetime.strptime(text, '%d-%m-%Y')
except ValueError:
try:
output = datetime.strptime(text, '%d-%b-%Y')
except ValueError:
output = "Please input date as follows: day mth year, e.g. 07 Mar 2020"
return output