#處理異常
#排錯的時候 真正報錯的是最下面
#python的**是不會出錯的,應該從下向上找最後一行自己寫的**去處理
#異常處理的應用:
#1.可以用
if規避,但是成本太高。
#2.不能用
if處理了
stopiteration
if 是預防異常出現的
try是異常出現之後
#異常處理的特點:一旦發生異常,程式就不再執行
try:
num = input('num : ')
int(num) #valueerror
print(num)
exceptvalueerror:
print('請輸入乙個數字')
#放在try
中的**如果遇到
except
中的錯誤型別,就會執行
except
中的**
#且一旦發生異常,
try中的**會停止在異常處
#但不影響
try語句之外的**執行
#一種錯誤型別只能處理對應的一種錯誤,其他錯誤還會照常報錯
try:
num = input('num : ')
int(num) # valueerror
print(num)
asum(1, 2, 3)
exceptvalueerror:
print('請輸入乙個數字')
exceptnameerrorasnameerror:
print('產生了乙個%s'%nameerror)
excepttypeerror:
print('又乙個錯誤誕生了')
顯示錯誤具體資訊
# 在我們不能完全明確的知道這個錯誤到底是發生了什麼的時候
# 就用
as 變數名,將變數中儲存的錯誤資訊列印出來
萬能異常
#對於你已經可以預見的但是不能完全規避的必須要處理的異常,
#你應該去指定他的處理方式
#對於其他你不能預料的,在使用萬能異常處理
try:
l =
l[1000] #indexerror
l = [1,23]
l_iterator = iter(l)
next(l_iterator)
next(l_iterator)
next(l_iterator) #stopiteration
exceptvalueerror:
print('請輸入乙個數字')
當try語句中不會發生異常的時候就執行
else
中的**
try:
a =1
exceptnameerrorase:
print(e)
else:
print('當try語句中不會發生異常的時候執行else中的**啦')
在函式裡面即使有return也會執行
finally
裡的語句,
finally
裡的語句最後執行
deffunc():
try:
f = open('file')
int(f.read())
exceptvalueerrorase:
a = 123
print(456)
returna
finally: #清理的工作 把之前的開啟的鏈結 檔案 都關掉
# #避免因為程式異常造成的浪費資源和邏輯問題
print('讀檔案失敗了')
exceptexceptionase:
print(e)
else:
print('成功了') #try**塊中沒有異常的時候才會被執行
finally: #finally**塊中的**永遠執行
print("關閉檔案")
主動觸發異常
raise可以主動拋異常
斷言只要條件不成立
下面**就不執行,而且會報錯
7 python異常處理 異常基類學習
部分內容摘選自菜鳥教程 及 瘋狂python講義 李剛 異常機制已經成為判斷一門語言是否成熟的標準。python的異常處理機制主要依賴try except else finally和raise五個關鍵字,其中 try語句按照如下方式工作 首先,執行try子句 在關鍵字try和關鍵字except之間的...
(7)Python 異常處理,檔案的讀寫
異常處理 print 異常出現前 l try print c l 10 1 hello print 10 0 except nameerror 如果except後不跟任何的內容,則此時它會捕獲到所有的異常 如果在except後跟著乙個異常的型別,那麼此時它只會捕獲該型別的異常 print 出現 na...
全棧之路 feign檔案上傳異常處理
fileuploadexception org.apache.tomcat.util.http.fileupload.fileuploadexception the request was rejected because no multipart boundary was foundis not ...