【发布时间】:2016-10-25 10:19:50
【问题描述】:
假设我们有以下代码:
print("...")
might_throw_type_error()
print("...")
might_throw_index_error()
如果我们想处理这些函数可能出现的异常,首选的方法是什么:
完全拆分“业务”代码和错误处理
try:
print("...")
might_throw_type_error()
print("...")
might_throw_index_error()
except IndexError:
# index error handling logic
raise
except TypeError:
# index error handling logic
raise
逻辑和错误处理的拆分,但尝试从可能引发的第一条语句开始
print("...")
try:
might_throw_type_error()
print("...")
might_throw_index_error()
except IndexError:
# index error handling logic
raise
except TypeError:
# index error handling logic
raise
异常处理应该只包装我们期望引发的语句
print("...")
try:
might_throw_type_error()
except TypeError:
# index error handling logic
raise
print("...")
try:
might_throw_index_error()
except IndexError:
# index error handling logic
raise
请注意,如果我们捕获异常,我们不想继续
【问题讨论】:
-
这是相当基于意见的...Code Review 可能更适合此类问题。
-
乐于移动它,询问是否有“pythonic”答案:$
-
这真的不是 Pythonic 的问题,而是品味的问题。 CodeReview 可能会说同样的话。
标签: python exception error-handling code-readability