首页 > 解决方案 > 如何检查一个异常块中的多个异常?

问题描述

我想在同一行捕获多个异常,但根据触发的异常有不同的结果。我正在尝试总结文本文件中的一组数字,并希望检查值和 io 错误。

try:
   filex = open('test.txt', 'r')
   number = filex.readline().rstrip('\n')
   added = 0
   while number != '':
    added += int(number)
    number = filex.readline().rstrip('\n')
   print(added)
   filex.close()

except (IOError,ValueError):
    if IOError:
       print('IOError')
    else:
       print('ValueError')

我遇到的问题是它总是会在 IF 测试的第一个条件下触发。

标签: pythonexceptiontry-catch

解决方案


可以使用两个,除了这个条件,像这样

try 
  .......
except IOError:
    print('IOError')
except ValueError:
    print('ValueError')

推荐阅读