我想知道是否可以将异常捕获到列表中(存储错误),继续通过for item in list
直到所有项都被迭代,然后对错误进行排序并打印唯一的错误? / p>
希望这是有道理的。这是一个函数的简单示例,试图说明我的意思:
def function1(list1, list2)
for item in list1:
for item in list2:
try:
do stuff here #iterates both lists
except:
capture exception append to list
errors = sort(exceptions)
print unique exceptions
答案 0 :(得分:-2)
易于收集且不易过滤
class SetForFilter(set):
def add(self,x):
if x in self:
return False
else:
super(SetForFilter,self).add(x)
return True
def function1(list1, list2):
errors = []
for item in list1:
for item in list2:
try:
do stuff here #iterates both lists
except Exception as e:
errors.append(e)
types = SetForTFilter()
unique = filter( lambda x: types.add(type(x)), errors)
for e in unique: print repr(e)
首先创建用于存储错误的列表。
python中的所有异常都应该基于内置的Exception
类,因此except Exception
意味着捕获所有异常。 as e
表示异常将存储在e
变量中。将e附加到错误中我会收集所有错误。
所有例外都是独一无二的。也许您想要捕获唯一的异常类型?
types = SetForFilter()
已设置(仅接受唯一对象)如果添加则返回True,否则返回False。