调试时如何跳过抛出异常的行

Swi*_*Run 5 python pycharm pdb ipdb

# process_with_huge_time_overhead()
list_a = [1,2,3]
print(list_a[3])
# process_with_huge_time_overhead()
new_data = [5,6,7]
list_a += new_data
Run Code Online (Sandbox Code Playgroud)

到达 ipdb 中的这一行(通过调用python -m ipdb script.py)后,抛出异常:IndexError 在此输入图像描述

如何继续调试和跳转而不经历再次到达这一点的开销

如果我跳到第62行,用n命令执行下一行,是不行的。everyn只是继续退出程序。

在此输入图像描述

Mil*_*ilk 3

如果不改变程序就无法做到这一点。

调试器跟随代码执行。如果抛出错误,调试器将继续遵循错误处理的程序流程。如果您不处理该错误,则会发生崩溃。这是预期的行为,调试器将遵循它。

  • 是的,就像我想将 script.py 中的所有内容逐行传输到 python shell...python shell 能够运行抛出异常的代码,而不会关闭并丢失当前变量和上下文。这就是我想要的行为!来自 Visual Studio C# 调试环境,我发现令人难以置信的是 Python 没有此功能,尤其是作为脚本语言。 (3认同)