除了被叫之外,为什么会这样? - Python

时间:2010-12-21 00:56:59

标签: python json exception except

我有一个方法可以检查JSON有效负载是否存在JSON解码错误和KeyErrors。出于某种原因,调用了带有except的{​​{1}}语句,但后来显示实际上没有KeyError,因为对象是KeyError。这是代码:

None

2 个答案:

答案 0 :(得分:1)

KeyError可能由simplejson.loads引发,违规密钥可能真的是None。没有足够的背景可以说更多。如果按照要求给出回溯,它将有很大帮助。

答案 1 :(得分:0)

查看回溯应该告诉您引发异常的模块。您可能还需要考虑使用ipdb来回手动来回调试这样的未来问题。此外,您应该继承Python的Exception类,这样您就可以通过提升和异常来控制自己的代码。

利用Python的getattr和setattr函数也有很多帮助:

在test_data上使用getattr会告诉您何时在返回None时引发自定义异常。