python - 多次尝试...除了块语句引发另一个错误
问题描述
我的多次尝试...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
异常,我该如何让它抛出我的消息?
解决方案
每个日期转换尝试都需要自己的异常处理程序。最好避免将 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
推荐阅读
- local-storage - indexeddb (IDB) 索引不适用于年份字段
- javascript - Vue and CSS3: absolute position in a relative wrapper messes up height
- python - Regular expression to match "verb" but not the "verb" in "adverb"
- c# - Get SharePoint user detail via Azure Chat bot
- .net - .Net Core / Angular 6 - Access-Control-Allow-Origin 不允许来源
- javascript - 如何使用 ajax 和 mysql 遍历数据
- c - 用 C 写一个 shell 我的程序无法退出()
- python - error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools" scrapy
- java - Java FileDialog browse and read from file
- android - GPS跟踪系统?