如果在代码中处理错误,Docstring 是否应该包含 'Raises' 语句
Should Docstring contain a 'Raises' statement if the error is handled in the code
假设我有一个简单的函数。例如:
def if_a_float(string):
try:
float(string)
except ValueError:
return False
else:
return True
我应该将 Raises: ValueError
语句包含到我的文档字符串中,还是应该避免它,因为代码中已经处理了错误?是否因任何错误(caught/uncaught)而完成?我知道这可能取决于样式,所以假设我使用的是 Google Docstring style(尽管我想这没那么重要)
您应该根据 Google Style Guidelines(您自己提到的同一文档)记录明确提出的异常以及可能与接口相关的异常。
此代码不会显式引发异常(没有 raise
),您无需提及您正在捕获异常。
实际上,这段代码甚至不会意外地引发一个(你正在捕获唯一可能的行)因此如果你要记录 if_a_float()
正在引发 ValueError
.[=14= 将会产生误导]
您应该只记录调用者需要注意并可能想要捕获的异常。如果函数本身捕获了异常并且没有将其引发给调用者,则它是调用者不需要知道的内部实现细节,因此不需要记录。
假设我有一个简单的函数。例如:
def if_a_float(string):
try:
float(string)
except ValueError:
return False
else:
return True
我应该将 Raises: ValueError
语句包含到我的文档字符串中,还是应该避免它,因为代码中已经处理了错误?是否因任何错误(caught/uncaught)而完成?我知道这可能取决于样式,所以假设我使用的是 Google Docstring style(尽管我想这没那么重要)
您应该根据 Google Style Guidelines(您自己提到的同一文档)记录明确提出的异常以及可能与接口相关的异常。
此代码不会显式引发异常(没有 raise
),您无需提及您正在捕获异常。
实际上,这段代码甚至不会意外地引发一个(你正在捕获唯一可能的行)因此如果你要记录 if_a_float()
正在引发 ValueError
.[=14= 将会产生误导]
您应该只记录调用者需要注意并可能想要捕获的异常。如果函数本身捕获了异常并且没有将其引发给调用者,则它是调用者不需要知道的内部实现细节,因此不需要记录。