【问题标题】:access to original dict after a KeyError在 KeyError 之后访问原始字典
【发布时间】:2015-08-28 17:07:03
【问题描述】:

如果我在 python 中捕获 KeyError 异常,我可以轻松获取失败的密钥。有没有办法访问字典中的键? 我知道异常本身没有信息,但是有没有办法从堆栈跟踪中找到它?

【问题讨论】:

  • Whitout 代码很难说,但如果您知道异常出现在哪个字典中,那么您可以简单地使用 a.keys() 访问它的键。

标签: python dictionary exception-handling stack-trace


【解决方案1】:

不,异常不会保留对引发异常的字典的引用。因此,您不能仅从异常中枚举确实存在的键。

【讨论】:

  • 一个人可能能够进入回溯对象并从中获取局部变量......不过,在 pdb 中比在实际代码中更有用。
  • @Kevin: 假设字典实际上绑定到一个变量。这也不是给定的。而且你仍然不知道哪个字典。可能有 0 个或多个字典与回溯中的顶部帧相关联,哪一个引发了异常?
猜你喜欢
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多