这段代码会产生KeyError吗?我是python新手,只想澄清一下,因为我检查了insertion不能导致keyrerror异常。
def add(self, name, company):
try:
self.identity[self.id] = { 'name': name,
'company': company }
return self.identity
except KeyError:
raise NameNotAdded
在这里,identity是一个字典,id是在其他地方初始化的int,NameNotAdded是一个自定义异常。
插入永远不会引发
KeyError
,但是如果您提供了一个错误的键,它可以引发TypeError
,这通常意味着您试图使用可变对象作为键。Python整数是不可变的,因此它们不会引发TypeError
。在请注意,如果您尝试向
dict
添加太多的项目,您将得到一个MemoryError
,因为缺少可用的RAM,或者OverflowError
,因为您试图超过集合的最大大小(可以从sys.maxsize
读取)。但没必要费心去抓那些。:)在这种情况下,没有任何理由引发关于^{} 的异常。在
KeyError
通常表示密钥不存在。在你的情况下,你只需在字典中添加一个新的键。在相关问题 更多 >
编程相关推荐