return-in-try-except-finally (SIM107)
源自 flake8-simplify 代码检查器。
作用
检查 try
-except
和 finally
块中的 return
语句。
为什么这不好?
finally
块中的 return
语句将始终被执行,即使在 try
或 except
块中引发了异常。这可能会导致意外的行为。
示例
def squared(n):
try:
sqr = n**2
return sqr
except Exception:
return "An exception occurred"
finally:
return -1 # Always returns -1.
建议改为
def squared(n):
try:
return_value = n**2
except Exception:
return_value = "An exception occurred"
finally:
return_value = -1
return return_value