我正在尝试一段代码来处理特定的异常:
try:
my_dict.get(s)
except KeyError:
print("This key does not exist in the dictionary")
return None
else:
print (my_dict.get(s))
return
所以这是函数的一部分,其中's'是函数的参数
它工作正常,并且在try块未引发异常时打印与键对应的值
但是,当我这样做时,我无法获得“此键在词典中不存在”的信息,我也不知道为什么。如果出现KeyError,该程序只返回None。
我知道这一定很明显,但是我无法解决,这让我感到沮丧
有人可以告诉我此方块有什么问题吗,谢谢
答案 0 :(得分:1)
dict.get
不会引发KeyError
,这是 safe 方法。如果您想捕获异常,请改用my_dict[s]
。
答案 1 :(得分:1)
dict.get
方法不会引发KeyError
。相反,当在字典中找不到给定的键时,默认情况下它将返回None
。您应该使用方括号代替通过键访问字典,以便在未按预期找到给定键时可以引发KeyError
:
try:
print(my_dict[s])
except KeyError:
print("This key does not exist in the dictionary")