【发布时间】:2021-06-22 16:30:18
【问题描述】:
我正在使用引发 KeyError 的方法。我想通过一个 for 循环运行它,然后在循环完成后一次显示所有这些错误。这可能吗?
我正在尝试,除非post 表示要忽略 KeyError(s)。
bad_list = []
for i in range (10):
try:
bad_list.append(checkermethod(i)) #checker method raises TypeError when called
except KeyError:
continue
if bad_list:
raise KeyError('\n'.join(bad_list))
我试图通过附加一个列表来捕捉这些错误,但它总是空的,所以它并没有真正附加任何东西。这是有道理的,因为我实际上忽略了这些错误,但是有没有关于如何以另一种方式做到这一点的想法?
【问题讨论】:
-
您的方法
checkermethod()不依赖于计数器i。您调用它 10 次和 10 次失败,这意味着没有返回结果。那么你的bad_list到底应该包含什么?异常、索引或其他? -
在这种情况下,它只是一个返回 KeyError 的虚拟方法。但我会用 i 变量更新它,这样它就更清楚了。
-
目前还不清楚你要做什么。
-
我正在尝试将错误一起显示,而不是在第一个 keyerror 后循环中断