Skip to Content
Python 技術手冊 第三版
book

Python 技術手冊 第三版

by lex Martelli, Anna Martelli Ravenscroft, Steve Holden
January 2018
Intermediate to advanced content levelIntermediate to advanced
856 pages
17h 17m
Chinese
GoTop Information, Inc.
Content preview from Python 技術手冊 第三版
182
|
5 章 例外
函式
h
建立了一個
try
述句,並在
try
子句中呼叫函式
g
,而
g
會接著呼叫
f
,後者進行了除以
0
的運算,提出
ZeroDivisionError
類別的一個例外。
該例外一路傳播回到
h
中的
except
子句。函式
f
g
在例外傳播的階段就
終止了,這就是它們的「after」訊息都沒被印出的原因。
h
try
子句的執
行也在例外傳播階段終止,所以它的「after」訊息也沒被印出。執行接續
到處理器之後,
h
try/except
結尾的地方。
raise 述句
你可以使用
raise
述句明確提出一個例外。
raise
是一種簡單的述句,具有
下列語法(v2 v3 都接受):
raise [expression]
只有例外處理器(或處理器呼叫的函式,無論直接或間接)可以使用不帶
任何運算式的
raise
。一個單純的
raise
述句會重新提出處理器接收到的同
一個例外物件。處理器終止,而例外傳播機制則在呼叫堆疊中繼續往上傳
遞,尋找其他適用的處理器。使用不帶任何運算式的
raise
適合用在處理
器發現它無法處理接收到的例外,或只能部分處理該例外之時,所以例外
應該繼續傳播,以讓呼叫堆疊上方的處理器能夠進行它們自己的處理工作
和清理工作。
如果
expression
有出現,它必須是繼承自內建類別
BaseException
的類別的
一個實體,而 Python 會提出那個實體。
僅限於 v2
expression
也可以是一個類別物件,
raise
會將之實體化以提出
所產生的實體,而其他的運算式可接在後面,以提供實體化所需的引數。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

測試驅動開發|使用 Python

測試驅動開發|使用 Python

Harry J.W. Percival
Linux 内核观测技术BPF

Linux 内核观测技术BPF

David Calavera, Lorenzo Fontana

Publisher Resources

ISBN: 9789864766819