(Python)未显示多个提升值错误

(Python)未显示多个提升值错误,python,error-handling,valueerror,Python,Error Handling,Valueerror,我正在使用一个包含多个内置提升值错误的脚本,该脚本在文件夹中的某些文件上循环。它检查条件,如果出现这种情况,应该为每个循环的文件报告一条错误消息 但是,它只显示一个文件的一条ValueError消息,而不是所有错误。它仍然为其他文件执行循环。例如,我有文件a和b,它们都应该生成一个错误,但是python只显示文件a的错误消息。我已经通过删除文件a对其进行了检查,在运行脚本之后,它确实为文件b生成了一条错误消息 我的部分代码是 for f_name in os.listdir(path):

我正在使用一个包含多个内置提升值错误的脚本,该脚本在文件夹中的某些文件上循环。它检查条件,如果出现这种情况,应该为每个循环的文件报告一条错误消息

但是,它只显示一个文件的一条ValueError消息,而不是所有错误。它仍然为其他文件执行循环。例如,我有文件a和b,它们都应该生成一个错误,但是python只显示文件a的错误消息。我已经通过删除文件a对其进行了检查,在运行脚本之后,它确实为文件b生成了一条错误消息

我的部分代码是

for f_name in os.listdir(path):
     if f_name.endswith('.xls'):
     ...
     if a < 0: 
          raise ValueError('error')
     else:
          xxx
os.listdir(路径)中f_名称的
:
如果f_name.endswith('.xls'):
...
如果a<0:
raise VALUERROR(“错误”)
其他:
xxx

有人知道如何显示所有错误吗?

我认为您应该尝试except语句来查找引发异常的文件。 用这个

try:
    if a < 0:
        raise ValueError('error')
    else:
        xxx
except ValueError:
    print(a) #this will print which file isn't satisfying the condition
试试看:
如果a<0:
raise VALUERROR(“错误”)
其他:
xxx
除值错误外:
打印(a)#这将打印不符合条件的文件

注意,
raise
将立即拆下堆栈,直到下一个匹配的
除外:
。您的代码只会引发一个错误,因为第一个异常已经中止了循环。