如何提示程序员在python中使用try except子句?

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中添加某些代码,或者我们可以使用一些工具来找到我忽略了一些重要的异常吗?

Joh*_*erg 5

我不知道在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++的异常说明?