使用字典进行基本异常处理

时间:2018-10-23 07:29:54

标签: python dictionary exception

我正在尝试一段代码来处理特定的异常:

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。

我知道这一定很明显,但是我无法解决,这让我感到沮丧

有人可以告诉我此方块有什么问题吗,谢谢

2 个答案:

答案 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")