【发布时间】:2021-11-17 18:24:07
【问题描述】:
遇到try/except 块,比如:
def foo(name):
try:
if name == "bad_name":
raise Exception()
except Exception:
do_something()
return
这样做是否有理由,而不是:
def foo(name):
if name == "bad_name":
do_something()
return
【问题讨论】:
-
在我看来,第一个代码sn -p是对异常处理机制的滥用。
-
不一定;如果有多个可能引发异常的点,那么所有这些点都可能导致单个
except块在其中统一处理它们。 (有点像goto的严格控制使用。) -
这个具体的例子很糟糕。但是,如果在
try:和except:之间还有其他可能引发异常的东西,那么可能。即使在第二种情况下,您也应该避免使用except Exception。如果您知道可能会发生什么样的异常,那么就抓住它们。抓住任何东西都是危险的。
标签: python python-3.x try-except