首页 > 解决方案 > 如何在 for 循环中找到导致错误的对象?

问题描述

my_list = ['list_obj_1', 'list_obj_2', 'list_obj_3']

for element in my_list:
    some_function()

此错误在某个对象上,但我无法放置哪个。在 some_function() 上找出哪个对象出错的简单方法是什么?

标签: pythonlistloopsfor-looperror-handling

解决方案


调试这样简单的事情的一种快速方法是使用pdb. 例如:

import pdb

my_list = ['list_obj_1', 'list_obj_2', 'list_obj_3']

for element in my_list:
    pdb.set_trace()
    some_function()

在这种情况下,您会在每次迭代时停止,因此您可以尝试添加try-except

import pdb
my_list = ['list_obj_1', 'list_obj_2', 'list_obj_3']

for element in my_list:
    try:
        some_function()
    except:
        pdb.set_trace()

现在,当抛出错误时,您将中断,您可以看到哪个element. 这样,您将知道是哪个元素导致了问题,而无需在每次迭代时停止。

链接到文档pdb

https://docs.python.org/3.2/library/pdb.html


推荐阅读