Python中的異常處理


異常

    在程序開發中,如果對於某些代碼的執行不確定(程序的語法完全正確),並非程序本身的錯誤,是與外界交互時,外界輸入不規范造成的。以下是處理異常的方法:

一、單個異常:

# 只有一個異常產生

try:

    num = int(raw_input("請輸入一個整數:"))

except:
    print "請輸入一個整型"

二、多個異常 

    如果有多個異常時,可以在except后邊添加異常的類型。(異常的類型可以通過錯誤測試得到;當python解釋器出現異常時,最后一行提示的第一個單詞為錯誤類型)

# 多個異常產生,使用多個except.
try:

    num = int(raw_input("請輸入一個整數:"))

    reslt = 8 / num

    print   reslt

except  ZeroDivisionError:

    print  "除數不能為0!"

except  ValueError:

    print  "類型不正確,請輸入整數!"

三、捕獲未知異常:

    在開發的時候,要判斷所有可能出現的異常是一定的難度的。所以,如果希望程序無論出現任何錯誤,都不會因python解釋器拋出的異常而終止,我們再可以增加一個except來接收未知錯誤。   

# 有未知異常的時候,進行如下捕獲 
try:

    num = int(raw_input("請輸入一個整數:"))

    reslt = 8 / num

    print  reslt

except  ZeroDivisionErrot:

    print  "除數不能為0"

except  Exception  as  result:      # result變量是隨便起的,可以接收錯誤信息

    print  "未知異常:%s"  % result 

四、完整的異常捕獲:

    使用關鍵字:try ---> else ---> finally ;其中try后面為可能出現異常的代碼,else后為可能為結果正確的才會執行的碼,finally后為無論程序是否有異常,都會執行的代碼。

try:

    num = int(raw_input("請輸入一個整數:"))

    reslt = 8 / num

    print  reslt

except  ZeroDivisionErrot:

    print  "除數不能為0"

# 捕獲未知異常

except  Exception  as  result:      # result變量是隨便起的,可以接收錯誤信息

    print  "未知異常:%s"  % result

# 只有程序正確的時候,才會執行else

esle:

    print  "程序正常執行!"

# 程序無論是否異常,都會執行finally中代碼

finally:

    print  "hello world!!!"

五、主動拋出異常情況:
# 實例:輸入一個密碼。當密碼為長度 >= 8合理,返回密碼輸入的密碼;否則異常

def  demo()

    # 提示用戶輸入密碼

    pawd = raw_input("請輸入密碼:")

    # 對密碼的長度進行判斷

    if  len(pawd) >= 8:

        return  pawd

    # 當密碼長度小於8時,主動拋出異常(首先創建異常對象,添加異常信息)

    expt = Exception("密碼長度不夠!!!")

    raise  expt

# 注意:只拋出異常而不捕獲,會出現錯誤;以下是捕獲異常的部分

try:

    print  demo()   # 若密碼正確,輸出密碼;錯誤的話,輸出錯誤的提示信息

except  Exception  as  result:

    print  "異常信息提示:%s"  %result

else:

    print  "密碼設計成功!!"

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM