【发布时间】:2022-01-03 02:09:30
【问题描述】:
在python脚本中,如果我们在一个表达式中有多个列表,例如:
a[1] = b[2] + c[3] + d[4]
或
a[1] = b[c[d[1]]] # (This case added in EDIT)
现在,这些列表之一会引发错误 IndexError: List Index Out of Range ,因为索引高于列表长度。
有没有办法使用try/except 语句来改进这种默认异常处理,以便我们可以立即找出导致问题的列表?
否则,需要使用命令行调试器检查每个列表。我了解,如果 IDE 可用,那么此功能可能已内置在 IDE 中。
【问题讨论】:
-
不太可能,因为 python 不会告诉您该行的哪一部分导致了错误。您可以尝试在 except 子句中单独访问每个列表中的元素,这会引发另一个错误,但这不是很可扩展
-
如果您关心哪个列表引发了异常,您应该在单独的
try语句中为每个列表编制索引,以便明确涉及哪个列表。