finally 块中的“break”或“return”语句¶
ID: py/exit-from-finally
Kind: problem
Security severity:
Severity: warning
Precision: medium
Tags:
- reliability
- maintainability
- external/cwe/cwe-584
Query suites:
- python-security-and-quality.qls
当在 finally
块中使用 break
或 return
语句时,这会导致 try-finally
块立即退出,丢弃异常。这不太可能是开发人员的意图,并且会使代码更难以阅读。
建议¶
将 break
或 return
语句移动到 finally
块之后,或者使用显式的 except
块来处理异常。
这些修改会改变行为,因此您必须注意确保结果行为是正确的。
参考资料¶
Python 语言参考: The try statement, The break statement, The return statement.
常见弱点枚举:CWE-584.