製作你自己的例外
- 之前的章節討論了例外的處理,但所有例外(例如 IndexError)→ 都被預先定義在 Python 裡面,或它的標準程式庫裡面
- 可以隨意使用它們,也可以定義自己的「例外類型」,來處理自己的程式可能的特殊狀況
這需要用類別(class)(在本書第六章才會討論),來定義一個新的物件類型 → 所以不瞭解類別,之後可能要再回來看這一節
例外是一種類別
- 例外是一種類別
- 例外是 Exception 類別的子類別
【範例】製作一個例外
- 製作一個例外,稱為 UppercaseException
- 當在字串中遇到大寫的單字時,會丟出這個例外
- 並未在 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)