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

时间:2015-05-12 13:27:28

标签: python exception-handling static-analysis pylint try-except

我们说我有一个引发异常的方法A:

def methodA(x, y):
     if y != 0: 
         z = x / y
         return z
     else:
         raise ZeroDivisionError("zero can not be a denominator")

在methodB中,我调用了methodA而没有处理异常:

def methodB(x, y):
     print methodA(x, y)

在这里,我想要一些可以警告我方法B中存在ZeroDivisionError潜在风险的东西,并且抓住它会更好。 有没有办法在方法A中添加某些代码,或者我们可以使用某种工具来查找忽略了一些重要的异常吗?

1 个答案:

答案 0 :(得分:5)

我不知道Python中有这种机制的任何内容,但总的来说methodA不应该关心methodB是否处理异常。在每个级别(例如methodB),只应捕获methodB可以处理的异常(在某些文档/指定级别)。如果methodB无法处理例如ZeroDivisionError那么也许没有人可以(然后没有抓住它就是正确的事情),或者,它可能是在某些调用图中,{{1} }将捕获它并在methodC的上下文中执行正确的操作。

还要注意Java的一些相关(但相反)的问题:Java: checked vs unchecked exception explanation

和C ++ https://softwareengineering.stackexchange.com/questions/114338/why-are-exception-specifications-badShould I use an exception specifier in C++?