如果在代码中处理错误,文档字符串是否应包含 'Raises' 语句



假设我有一个简单的函数。例如:

def if_a_float(string):
try:
float(string)
except ValueError:
return False
else:
return True

我应该将Raises: ValueError语句包括在我的文档字符串中吗?还是应该避免它,因为代码中已经处理了错误?是否针对任何错误(捕获/未捕获(完成此操作?我知道这可能取决于风格,所以假设我使用的是Google Docstring风格(尽管我想这没那么重要(

您应该根据Google Style Guidelines(您自己提到的同一文档(记录明确提出的异常,以及可能与界面相关的异常。

这段代码不会显式引发异常(没有raise(,也不需要提及您正在捕获异常。事实上,这段代码甚至不会意外地引发一个(您捕捉到的是唯一可能的行(,因此,如果您要记录if_a_float()正在引发ValueError,这将是一种误导。

您应该只记录调用方需要注意并且可能想要捕获的异常。如果函数本身捕获了异常,并且没有将其引发给调用方,那么调用方不需要知道这是一个内部实现细节,因此不需要对其进行记录。

最新更新