Python 调试时如何跳过行抛出异常
在ipdb中到达这一行(通过Python 调试时如何跳过行抛出异常,python,pycharm,pdb,ipdb,Python,Pycharm,Pdb,Ipdb,在ipdb中到达这一行(通过python-mipdbscript.py调用)后,抛出异常:IndexError 如何继续调试和跳转,而不需要再次达到这一点的开销 如果我跳转到第62行并使用n命令执行下一行,那么它就不起作用。每个n都会继续退出程序 如果不更改程序,则无法执行此操作 调试器跟踪代码执行。如果抛出错误,调试器将继续执行错误处理的程序流。如果错误未由您处理,则会发出崩溃。这是预期的行为,调试器将遵循它 你可以这样做 # process_with_huge_time_overhead(
python-mipdbscript.py调用)后,抛出异常:IndexError
如何继续调试和跳转,而不需要再次达到这一点的开销
如果我跳转到第62行并使用n
命令执行下一行,那么它就不起作用。每个n
都会继续退出程序
如果不更改程序,则无法执行此操作
调试器跟踪代码执行。如果抛出错误,调试器将继续执行错误处理的程序流。如果错误未由您处理,则会发出崩溃。这是预期的行为,调试器将遵循它 你可以这样做
# 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
为什么我们不能跳过使用pdb
是的,我们可以通过更改堆栈帧数据
pdb在任何堆栈帧的上下文中检查任意Python代码。因此,跳过此操作的一种方法是更改堆栈帧数据(间接更改整个逻辑)。最好是处理代码异常
由于您使用的是pycharm,您可以设置值,也可以在pdb中更改值。但不建议这样做(因为这样会更改逻辑)
我想说最好在那里为exception添加代码..如果是exception,那么continuery:do\u something()除了exception:passYeah,这就像我想将script.py中的所有内容逐行传输到python shell一样。。。pythonshell能够运行抛出异常的代码,而不会关闭和丢失当前变量和上下文。这就是我想要的行为!来自VisualStudioC#调试环境,我发现python不具备这种功能,特别是作为脚本语言,令人难以置信。
try:
list_a = [1,2,3]
except Exception:
pass
print(list_a[3])
# process_with_huge_time_overhead()
new_data = [5,6,7]
list_a += new_data