首頁  >  文章  >  後端開發  >  如何有效處理Python請求模組中的錯誤?

如何有效處理Python請求模組中的錯誤?

Linda Hamilton
Linda Hamilton原創
2024-11-20 02:01:01620瀏覽

How to Handle Errors in Python Requests Module Effectively?

Python 請求模組中的Try/Except 錯誤處理

在Python 中使用Requests 模組是處理API 呼叫和HTTP 請求的便捷方法。當請求執行期間發生錯誤時,必須有強大的錯誤處理能力。

此程式碼正確嗎?

try:
    r = requests.get(url, params={'s': thing})
except requests.ConnectionError, e:
    print(e)

此程式碼嘗試透過處理 ConnectionError 異常來僅擷取與連線相關的錯誤。但是,這並沒有涵蓋 Requests 模組可能遇到的所有可能的錯誤場景。

建構錯誤處理的更好方法

為了確保處理所有潛在的錯誤,建議捕獲基異常類requests.exceptions.RequestException 而不是特定異常,例如ConnectionError .

try:
    r = requests.get(url, params={'s': thing})
except requests.exceptions.RequestException as e:  # This is the correct syntax
    raise SystemExit(e)

或者,您可以單獨處理特定的異常並相應地採取不同的操作。例如,您可以以不同於連線錯誤的方式處理逾時。

try:
    r = requests.get(url, params={'s': thing})
except requests.exceptions.Timeout:
    # Maybe set up for a retry, or continue in a retry loop
except requests.exceptions.TooManyRedirects:
    # Tell the user their URL was bad and try a different one
except requests.exceptions.RequestException as e:
    # catastrophic error. bail.
    raise SystemExit(e)

捕捉 HTTP 錯誤

如果您希望引發 HTTP 錯誤(例如 401 Unauthorized)的異常,你可以使用 Response.raise_for_status() 方法。

try:
    r = requests.get('http://www.google.com/nothere')
    r.raise_for_status()
except requests.exceptions.HTTPError as err:
    raise SystemExit(err)

徹底處理異常並根據錯誤類型自訂行為,您可以確保您的程式碼在 HTTP 請求期間正確回應錯誤和使用者輸入。

以上是如何有效處理Python請求模組中的錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn