未使用的异常对象¶
ID: py/unused-exception-object
Kind: problem
Security severity:
Severity: error
Precision: very-high
Tags:
- reliability
- maintainability
Query suites:
- python-security-and-quality.qls
创建新的异常对象与创建任何其他对象没有什么不同。异常需要被引发才能生效。
建议¶
在异常之前插入raise
。
示例¶
在本例中,第一个函数do_action_forgotten_raise()
会静默地忽略任何错误输入。而第二个函数do_action
则在不理解“action”时正确地引发异常。
def do_action_forgotten_raise(action):
if action == "go":
start()
elif action == "stop":
stop()
else:
ValueError(action)
def do_action(action):
if action == "go":
start()
elif action == "stop":
stop()
else:
raise ValueError(action)