我知道一些代码在列表为空的极端情况下会失败,因此我为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错误,我不认为这是相关的(但听起来可能是这样)。
答案 0 :(得分:2)
支持IPython的编辑器(包括Jupyter)即使在模块被编辑后也不会总是重新加载模块。我认为这可能是不幸的巧合; 编辑后,引发错误的行与您的异常处理程序的行重合。现在引发该错误的代码可能不是该行的内容。您可能希望每次运行脚本时都强制重新加载导入的模块,或者至少暂时重新启动底层的IPython内核。