Pyhton之異常處理

2021-10-08 16:20:23 字數 2660 閱讀 1677

概念異常是程式執行過程**現的非正常流程現象。

異常是無法避免的,只能先預估出可能出現的異常現象,並提供對應的處理機制,在異常出現後保障程式不被中斷執行。

基本語法

# 格式一:

try:

# 可能引發異常現象的**

except:

# 出現異常現象的處理**

# 格式二:

try:

# 可能引發異常現象的**

finally:

# try**塊結束後執行的**

# 格式三:

try:

# 可能引發異常現象的**

except:

# 出現異常現象的處理**

else:

# 未出現異常現象的處理**

finally:

# try**塊結束後執行的**

各**塊功能詳細說明:

**塊名稱

作用說明

try包裹可能引發異常的**

被包裹的**可能出現異常也可能不出現異常

except

對出現的異常進行處理

異常處理**塊可以有多個,根據不同種類的異常定義不同的處理方案

else

未出現異常的**

當try**塊中沒有出現異常時,try中**執行完畢執行else中的**

finally

異常處理機制結束執行**

無論try**塊中是否出現異常現象,都將執行finally**塊中的內容

異常精細化處理

異常處理可以根據不同種類的異常進行不同的處理方案設計,使用異常名稱來進行區分。標準格式如下:

except 異常類名1 as 變數名:

# 出現異常現象的處理**

except 異常類名2 as 變數名:

# 出現異常現象的處理**

except 異常類名3 as 變數名:

# 出現異常現象的處理**

except exception as 變數名:

# 出現異常現象的處理**

注意:

①通過異常類名後面的變數名可以獲取到具體異常資訊

②執行了某個except中的內容後,其他except中的內容將不再執行

③exception類是所有異常類的父類,能夠攔截所有的異常現象,通常設定成最後一級的捕獲

異常物件主動丟擲

異常現象可以主動丟擲

語法:raise 異常類物件

注意:異常物件使用raise丟擲時,通常是滿足某種情況時丟擲,否則將會出現程式執行到此處必定丟擲異常。

異常處理傳遞

異常出現後如果沒有**獲處理,該異常將會繼續向下傳遞,到下一次呼叫位置。

基本語法

# 自定義

class 自定義異常類名(exception):

相關語句

# 觸發

raise 異常類物件

""

"使用者登入資訊校驗:

要求:使用者輸入使用者名稱、密碼後對資訊進行校驗

1.使用者名稱長度在3-8個字元

2.使用者名稱中只能出現英文本母和數字

3.密碼長度必須是6位

4.密碼必須由純數字組成"""

# 自定義使用者名稱異常

class nameiserror(exception):

pass

# 自定義密碼異常

class passwordiserror(exception):

pass

# 登入檢查

def check_login(name,pwd):

if len(name)

<3 or len(name)

>8:

raise nameiserror(

"使用者名稱長度必須在3到8個字元之間"

)if not name.isalnum(

): raise nameiserror(

"使用者名稱中只能出現英文本母和數字"

)if len(pwd)

!=6:

raise passwordiserror(

"密碼長度必須是6位"

)if not pwd.isnumeric(

): raise passwordiserror(

"密碼必須由純數字組成"

)name=input(

"請輸入使用者名稱:"

)pwd=input(

"請輸入密碼:"

)try:

check_login(name,pwd)

except nameiserror as a:

print(str(a))

except passwordiserror as b:

print(str(b))

else:

print(

"登入成功!"

)

pyhton專題異常與錯誤

本篇文章將介紹什麼是異常,初學者遇見異常時發生的情況,如何捕獲和處理異常,以及自定義異常 通常的錯誤是指語法錯誤,即在編碼後進行編譯的時候就會發生的錯誤,一般高階的編譯器都能自動識別語法錯誤 比較重要的就是異常,異常是指在程式執行期間發生的錯誤,比如報空異常,算術異常等待 通常我們可以使用raise...

python之異常處理 Python之異常處理

異常物件 請大家執行如下 a 100 0 print a 就會發現直譯器顯示如下的錯誤提示 traceback most recent call last file x.py line 1,in a 100 0 zerodivisionerror division by zero 大家要學會看直譯器...

Python之異常及異常處理

在python中,萬物皆物件.所以異常在python中也是物件.當程式無法正常執行 時,就會丟擲乙個異常,程式就會執行回溯 traceback 來終止程式.但有時候這並 不是我們想要看到的,程式需要繼續執行下去,這時候就需要對異常進行處理.捕捉異常可以使用try except語句。try excep...