# `urllib.error` --- urllib.request 引發的例外類別

原始碼：Lib/urllib/error.py

`urllib.error` module（模組）為 `urllib.request` 所引發的例外定義了例外 (exception) 類別。基礎例外類別是 `URLError`。

下列例外會被 `urllib.error` 適時引發：

exception urllib.error.URLError

  處理程式 (handler) 在遇到問題時會引發此例外（或其衍生例外）。它是 `OSError` 的一個子類別。

  reason

    此錯誤的原因。它可以是一個訊息字串或另一個例外實例。

  在 3.3 版的變更: `URLError` 過去是 `IOError` 的子類別，但現在為 `OSError` 的別名。

exception urllib.error.HTTPError(url, code, msg, hdrs, fp)

  雖然是一個例外（`URLError` 的一個子類別），`HTTPError` 也可以作為一個非例外的類檔案回傳值（與 `urlopen()` 所回傳的物件相同）。這適用於處理特殊 HTTP 錯誤，例如為請求認證。

  url

    包含請求 URL。filename 屬性的別名。

  code

    一個 HTTP 狀態碼，具體定義見 RFC 2616。這個數值會對應到存放在 `http.server.BaseHTTPRequestHandler.responses` 程式碼 dictionary 中的某個值。

  reason

    這通常是一個解釋本次錯誤原因的字串。為 msg 屬性的別名。

  headers

    導致 `HTTPError` 的特定 HTTP 請求的 HTTP 回應 header。為 hdrs 屬性的別名。

    在 3.4 版被加入.

  fp

    一個類檔案物件，可以從中讀取 HTTP 錯誤主體 (body)。

exception urllib.error.ContentTooShortError(msg, content)

  此例外會在 `urlretrieve()` 函式檢查到已下載的資料量小於期待的資料量（由 Content-Length header 給定）時被引發。

  content

    已下載（可能已被截斷）的資料。