Python仍会引发我明确排除的异常

时间:2019-04-16 11:55:34

标签: python python-3.x exception index-error

我知道一些代码在列表为空的极端情况下会失败,因此我为IndexError添加了异常处理。

但是,尽管处理了异常,它仍在提高。

~/Code/foo.py in decode_tokens(tokens)
    196                 new_toks.append(new_tok)
    197             else:
--> 198                 try: new_toks[-1] += new_tok
    199                 except IndexError: pass
    200             new_elem = True

IndexError: list index out of range

我不明白如何明确地排除IndexError,为什么它仍然被提出并中止脚本执行。

编辑:添加为这是在Jupyter笔记本中运行的Python 3.6。看起来像是python错误,我不认为这是相关的(但听起来可能是这样)。

1 个答案:

答案 0 :(得分:2)

支持IPython的编辑器(包括Jupyter)即使在模块被编辑后也不会总是重新加载模块。我认为这可能是不幸的巧合; 编辑后,引发错误的行与您的异常处理程序的行重合。现在引发该错误的代码可能不是该行的内容。您可能希望每次运行脚本时都强制重新加载导入的模块,或者至少暂时重新启动底层的IPython内核。