【问题标题】:Basic exception handling with dictionary使用字典的基本异常处理
【发布时间】:2019-03-27 08:39:42
【问题描述】:

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

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块没有抛出异常时,它工作正常并打印出key对应的值

但是当它出现时,我无法打印“字典中不存在此密钥”,我不知道为什么。程序在 KeyError 的情况下简单地返回 None。

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

谁能告诉我这个块有什么问题,谢谢

【问题讨论】:

    标签: python dictionary exception


    【解决方案1】:

    dict.get 方法不会引发 KeyError。相反,当在字典中找不到给定的键时,它默认返回None。您应该使用方括号来通过键访问字典,以便在未按预期找到给定键时引发KeyError

    try:
        print(my_dict[s])
    except KeyError:
        print("This key does not exist in the dictionary")
    

    【讨论】:

      【解决方案2】:

      dict.get 不会引发KeyError,它是安全 方法。如果要捕获异常,请改用my_dict[s]

      【讨论】:

        猜你喜欢
        • 2016-06-25
        • 2014-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-15
        相关资源
        最近更新 更多