Python 3 中使用異常鏈有標準方式嗎?
在處理一個異常“A”時,可能會發生另一個異常“B”。在 Python 2.0 版本中,如果發生這種情況,異常 B 將向外傳播,異常 A 將丟失。瞭解這兩個異常對於除錯問題很有用。
有時,異常處理程式故意重新引發異常會很有用,以提供額外的資訊或將異常轉換為另一種型別。__cause__ 屬性提供了一種顯式的方式來記錄異常的直接原因。
異常連結僅在 Python 3 中可用。Python 3 有 raise ... from 子句來連結異常。我們使用 raise..from 子句重寫給定的程式碼,如下所示
try:
s = {‘a’:1, ‘b’:2}['c']
except KeyError as e:
raise ValueError('failed') from ePython 3 將預設顯示在異常處理期間發生的全部異常,如下所示
Traceback (most recent call last):
File "source_file.py", line 2, in <module>
s = {'a':1, ‘b’:2}['c']
KeyError: 'c'上述異常是以下異常的直接原因
Traceback (most recent call last):
File "source_file.py", line 4, in <module>
raise ValueError('failed') from e
ValueError: failed
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP