嗨,我有一个函数,解析文件中的前60行,如果有完全是空白的行,它应该提醒用户。然而,这些可能发生在这60行中的任何地方,所以我希望脚本能够解析整个60行,主要是因为我需要一些行中的数据来报告错误。我们可能想知道这些错误将来会发生在哪里。我写道:
def header_data(data):
dictionary = {}
datalen = len(data)
itrcntr = 0
try:
for line in data:
itrcntr += 1
if line.isspace():
raise Exception('File has badly formatted header data line(s)')
else:
linesplit = line.rstrip().split(":")
if len(linesplit) > 1:
dictionary[linesplit[0]] = linesplit[1].strip()
return dictionary
except Exception as e:
errmsg = str(e)
if itrcntr == datalen:
return (dictionary, errmsg)
else:
pass
有了这个函数,我希望如果它看到itrcntr不等于datalen,它会传递并返回try块,然后转到下一行。但这并没有发生。相反,它从函数中断并在函数调用程序的下一行继续。如何使它继续循环,直到到达循环的末尾,然后返回字典和错误消息?或者这不能用try-catch异常处理程序来完成吗
除非您想捕获
line.isspace
情况以外的异常,否则我根本不会使用try
块。只需在列表中收集错误,例如:如果在Try中的任何位置引发异常,则将跳过所有其他内容。因此,如果希望循环继续,则不要使用Try-Except
只需收集每个错误消息,然后返回
相关问题 更多 >
编程相关推荐