<分区> 分区>
什么是向 Python 异常添加额外信息的好方法
例如 我有嵌套的字典
d = {'Bob':{'lastname':'Smith'}, 'Sally':{}}
如果我像这样访问字典,我会得到我想要的姓氏
name = 'Bob'
value = 'lastname'
print(d[name][value])
Smith
如果我尝试访问 Sally 的姓氏,我也会得到我想要的,这是一个 KeyError
name = 'Sally'
value = 'lastname'
print(d[name][value])
KeyError: 'lastname'
但是我的问题是这个异常非常难以描述,所以我的代码现在看起来像这样
try:
name = 'Sally'
value = 'lastname'
print(d[name][value])
except KeyError:
raise KeyError("{0} has no {1}".format(name, value))
KeyError: Sally has no lastname
这给了我正在寻找的描述性错误,但我想知道这个实现是否是 pythonic 的。有没有更好的表达方式?我已经尝试查看 python 文档和其他常用包,但没有发现至少我能看到的结论
