簡體   English   中英

我什么時候應該在python中引發LookupError?

[英]When should I raise LookupError in python?

Python的內置異常文檔將LookupError定義為:

當映射或序列上使用的鍵或索引無效時引發的異常的基類:IndexError,KeyError。 這可以通過codecs.lookup()直接引發。

是否應該僅在捕獲嘗試使用索引和鍵來訪問字典的部分時才使用此基類,當想要快速捕獲兩者時,或者是否有另外使用它的情況?

首先,字典只使用鍵(參見: 如何索引字典? )。

如果你是一個懶惰的人,你會使用LookupError同時捕獲KeyError和IndexError(以免你說有一個字典填充了列表)。 從來沒有我更願意分別用兩種不同的例外來捕捉它們。 例如:

try:
    # do some stuff here
except KeyError:
    # key error handling
except IndexError:
    # index error handling

這樣,您可以以不同的方式響應這些異常,因為它們是由不同的事件引起的。 此外,可能還有其他異常是LookupError的變體(見下文),並且您也不希望捕獲這些異常(同樣的原因except:不會簡單地使用:)。

使用LookupError的另一種方法是,如果您需要自己的異常,因為此異常所代表的錯誤是由KeyError描述的錯誤,也不是IndexError,而是一種LookupError。 在這種情況下,您的自定義異常可以從LookupError繼承。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM