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’ #文件類型出錯
,所有不是忽略了,而是不執行,所有就沒有報錯哦
