import requests
def example():
"""
An example function
:raises KeyError: ?
:raises HttpError: ?
"""
result: Dict = do_something()
log(result["key"])
response = requests.get(url)
return response
上述函式沒有顯式引發任何例外,但可以看出,它的執行可能會引發 KeyError 和 HTTPError。在檔案字串中提及這些可以嗎?最佳實踐怎么說?
uj5u.com熱心網友回復:
如果例外與使用函式的人相關,則應記錄(并且它們是間接的)
uj5u.com熱心網友回復:
這對于評論來說太長了,但它也不是一個答案,因為它的某些部分相互矛盾。
不要關心因錯誤使用或計算機出現問題而導致的例外,這些問題會阻止正常的程式運行,例如磁盤已滿。
如果在正確使用函式時可能發生一些例外(應該記錄這意味著什么),它們是介面的一部分并且應該記錄在案。
網路充滿了超時、中斷、失敗的連接,因此它們可能被認為是正常的。
例如,
requests.get它本身沒有提到它可能引發的例外(鏈接:https ://docs.python-requests.org/en/latest/_modules/requests/api/#get )。它說你會得到回應。但是如果沒有有效的回應,你能得到什么?例外,沒有別的。所以它是“暗示的”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/426234.html
上一篇:Python調度程式中的例外
