我在Github上創建了一個開源項目,我想確保我盡我所能使它變得健壯,穩定並且它的Pythonic。爲此,我有一個問題,當我期望在字典中存在一個密鑰並且它不包含時,我應該使用什麼樣的異常。KeyError是否適當的異常?
也就是說,調用函數會是這樣的:
def calling_func():
my_dict = {
'value_1': 1,
'value_2': None,
'value_3': '3',
}
foo(my_dict)
我的功能foo
預計字典包含key
(以及相應的value
),value_4
。在以下情況下籌集KeyError
是否合適?
def foo(my_dict):
expected_keys = ['value_1', 'value_2', 'value_3', 'value_4']
for key in expected_keys:
if key not in my_dict:
raise KeyError
這似乎爲KeyError
傳統使用的是這種用法的倒數。
我應該爲此創建自己的異常類型嗎?
class MissingKeyError(Exception):
pass
還是有這個效果?
是什麼給你的印象'KeyError'是相反的? – 2013-04-21 13:25:16
@Martijn Pieters其實,現在我想起它在做什麼在邏輯上等同於一個'KeyError'。 – Rico 2013-04-21 13:34:52