概念異常是程式執行過程**現的非正常流程現象。
異常是無法避免的,只能先預估出可能出現的異常現象,並提供對應的處理機制,在異常出現後保障程式不被中斷執行。
基本語法
# 格式一:
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...