Fan*_*Fan 2 python static-analysis exception-handling pylint try-except
假设我有一个引发异常的方法:
def methodA(x, y):
if y != 0:
z = x / y
return z
else:
raise ZeroDivisionError("zero can not be a denominator")
Run Code Online (Sandbox Code Playgroud)
在方法B中,我调用了methodA而没有处理异常:
def methodB(x, y):
print methodA(x, y)
Run Code Online (Sandbox Code Playgroud)
在这里,我想要一些可以警告我ZeroDivisionError
在methodB中存在潜在风险的东西,并且最好抓住它.有没有办法在方法A中添加某些代码,或者我们可以使用一些工具来找到我忽略了一些重要的异常吗?
我不知道在Python中有什么接近这种机制,但一般methodA
不应该关心是否methodB
处理异常.在每个级别(例如methodB
),只methodB
应捕获可能处理的异常(在某些文档/指定级别).如果methodB
不能处理例如ZeroDivisionError
那么也许没有人可以(然后没有捕获它是正确的兴奋),或者,它可能是在一些调用图中,methodC
将捕获它并在上下文中做正确的事情methodC
.
还要注意Java的一些相关(但相反)的问题:Java:checked vs unchecked exception explanation
和C++ https://softwareengineering.stackexchange.com/questions/114338/why-are-exception-specifications-bad和我应该用在C++的异常说明?
归档时间: |
|
查看次数: |
114 次 |
最近记录: |