7 python全棧之路 異常處理

2022-08-22 08:18:11 字數 3395 閱讀 2302

#處理異常

#排錯的時候 真正報錯的是最下面

#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 ...