python - py的缺陷吗——try...except,except里只要有对应第一个try的错误就行了吗?也就是忽视了其他的try错
问题描述
一个try中可以能产生多个错误,所以可以一个try对应多个excepttry:
f = open(’我为什么是一个文件.txt’) #这个txt并不存在print(f.read())f.close()sum=1+’1’ #文件类型出错
except TypeError as reason:
print(’类型出错啦n错误的原因是:’+str(reason))
except OSError as reason:
print(’文件出错了n错误的原因是:’+str(reason))
如果去掉这两行
except OSError as reason:
print(’文件出错了n错误的原因是:’+str(reason))
会报错
Traceback (most recent call last): File 'E:/PyCharm 2016.3.2/untitled3/guessing/test01.py', line 2, in <module> f = open(’我为什么是一个文件.txt’) #这个txt并不存在FileNotFoundError: [Errno 2] No such file or directory: ’我为什么是一个文件.txt’
而如果去掉
except TypeError as reason:
print(’类型出错啦n错误的原因是:’+str(reason))
则不会报错,也就是说忽视了sum=1+‘1’的错误,这个是缺陷吗还是什么,麻烦大咖 解释下
问题解答
回答1:这里有两个错误啊,发生OSError的时候就不执行后面的代码了,也就是没有执行
sum=1+’1’ #文件类型出错
,所有不是忽略了,而是不执行,所有就没有报错哦
