製作你自己的例外

  • 之前的章節討論了例外的處理,但所有例外(例如 IndexError)→ 都被預先定義在 Python 裡面,或它的標準程式庫裡面
  • 可以隨意使用它們,也可以定義自己的「例外類型」,來處理自己的程式可能的特殊狀況

這需要用類別(class)在本書第六章才會討論),來定義一個新的物件類型 → 所以不瞭解類別,之後可能要再回來看這一節

例外是一種類別

  • 例外是一種類別
  • 例外是 Exception 類別的子類別

【範例】製作一個例外

  1. 製作一個例外,稱為 UppercaseException
  2. 當在字串中遇到大寫的單字時,會丟出這個例外
  3. 並未在 UppercaseException 之中定義任何行為 → 而是讓它的父類別 Exception 決定例外出現時,要印出什麼東西
>>> class UppercaseException(Exception):
        pass
>>> 字串名稱s = ['字串1', '字串2', '字串3', '字串4']
>>> for 字串名稱 in 字串名稱s:
        if 字串名稱.isupper():
        raise UppercaseException(字串名稱)

錯誤
>>> class UppercaseException(Exception):
    pass

>>> words = ['eeenie', 'meenie', 'miny', 'MO']
>>> for word in words:
    if word.isupper():
        raise UppercaseException(word)

Traceback (most recent call last):
  File "<pyshell#45>", line 3, in <module>
    raise UppercaseException(word)
UppercaseException: MO

【範例】查看此例外物件,並印出它

>>> try:
        raise OopsException('panic')
    except OopsException as exc:
        print(exc)

results matching ""

    No results matching ""