1. 程式人生 > >python 第二十七篇 異常捕獲

python 第二十七篇 異常捕獲

#try....except....:用於捕獲程式碼異常,當一段程式出現異常的時候,會導致程式崩潰,整個程式會結束執行。後續的一些程式碼邏輯也不會再執行。但是當異常被捕獲並進行處理,可以保證整個程式的正常執行。後續的程式碼也不會受到異常的影響。

try:
    #寫要捕獲異常的程式碼
    pass
except Exception as e:
    #Exception:異常類,基本上能捕獲常見的異常情況,表示異常原因。
    #e,用於接收錯誤原因的。
    pass
    #出現異常時,需要設定的程式碼邏輯。
    #當try裡面的程式碼執行成功的時候,則不會執行except Exception as e裡面的程式碼
else:
    pass
    #如果try裡面的程式碼執行成功,則緊接著會執行else中的程式碼
    #如果try出現異常沒有執行成功,則不會執行else裡面的程式碼。
finally:
    pass
    #不管try執行成功還是失敗,最終都會執行finally語句裡面的程式碼。



#example:
list1=[]
# print(list1[0])

# try:
#     print(list1[0])
# except Exception as e:
#     print('try裡面的程式碼出現異常沒有執行成功,所以需要執行我!')
#     print('錯誤的原因error:',e)
# else:
#     print('try裡面的程式碼執行成功,則會接著執行我!try裡面的程式碼沒有執行成功,則不會執行我!')
# finally:
#     print('不管try執行成功還是失敗,都最終會執行我!')


# try:
#     print(list1[0])
# except IndexError as e:
#     print('try裡面的程式碼出現異常沒有執行成功,所以需要執行我!')
#     print('錯誤的原因error:',e)
# else:
#     print('try裡面的程式碼執行成功,則會接著執行我!try裡面的程式碼沒有執行成功,則不會執行我!')
# finally:
#     print('不管try執行成功還是失敗,都最終會執行我!')


# try:
#     import a
# except ImportError as e:
#     print('錯誤原因是error:',e)



#在函式內部自定義一個異常:當呼叫該函式的時候,如果不符合函式內部定義的條件,則丟擲這個異常!如果符合函式條件,就不丟擲異常!
#raise:丟擲異常原因的關鍵字。
def is_outrange(age):
    if age<16:
        raise Exception('小於16週歲,不能談戀愛!')
    else:
        return True

# res=is_outrange(15)
try:
    res=is_outrange(15)
except Exception as e:
    print('錯誤原因error:',e)



#面試題中常問的問題:你遇到過的錯誤類有哪些?
#ImportError:匯入錯誤
#IndexError:索引錯誤
#NameError:嘗試訪問一個沒有宣告的變數
#SyntaxError:語法錯誤
#AttributeError:嘗試訪問未知的物件屬性
#KeyError:請求一個不存在的字典關鍵字
#ValueError:傳給函式的引數型別不正確。
#.........