Python編程思想(32):異常處理中的try…except

李寧老師已經在「極客起源」 微信公衆號推出《Python編程思想》電子書,囊括了Python的核心技術,以及Python的主要函數庫的使用方法。讀者可以在「極客起源」 公衆號中輸入 160442 開始學習。

《Python編程思想》總目錄
《Python編程思想》專欄

現在絕大多數編程語言都支持異常處理,異常處理的通行做法是將正常執行的代碼放在特定代碼塊中,然後再將處理異常的代碼放在另一個代碼塊中,如果正常執行的代碼塊的某條語句拋出了異常,那麼就會直接跳到處理異常的代碼塊中繼續執行。而在正常的代碼塊中拋出異常語句後面的所有代碼都不會被執行。

其實最初的錯誤處理並不是這樣的,而是根據具體的錯誤類型由條件進行判斷,下面是處理錯誤的僞代碼:

儘管通過條件判斷錯誤從技術上可行,但對於一個程序所拋出的錯誤數量是未知的,所以通過條件很可能無法處理所有的錯誤,爲了儘可能處理所有的錯誤,可以使用Python語言的try...except語句,該語句可以捕獲各種異常。

Python的異常處理機制可以讓程序具有極好的容錯性,讓程序更加健壯。當程序運行出現意外情況時,系統會自動生成一個Error對象來通知程序,從而實現將“業務實現代碼”和“錯誤處理代碼”分離,提供更好的可讀性。

下面是 Python異常處理機制的語法結構:

try:
    # 正常的業務實現代碼
    ... ...  
except (Errorl, Error2,,.)as e:
    # 處理異常的代碼
    ... ...

如果在執行try塊裏的業務邏輯代碼時出現異常,系統自動生成一個異常對象,該異常對象被提交給 Python解釋器,這個過程被稱爲引發異常。當 Python解釋器收到異常對象時,會尋找能處理該異常對象的 except塊,如果找到合適的except塊,則把該異常對象交給該except塊處理,這個過程被稱爲捕獲異常。如果 Python解釋器找不到捕獲異常的 except塊,則運行時環境終止, Python解釋器也將退出。

下面是一個使用try...except塊的例子:

示例代碼: try_except. py

x = None

while True:
    try:
        if x == None:
            x = int(input("請輸入分子:"))
        y = int(input("請輸入分母:"))
        print("x / y = {}".format(x / y))
        break;
    except :
        print("分母不能爲0,請重新輸入分母!")

在這段代碼的try.except語句中,包含了用於輸入分子和分母的代碼。當輸入的分母爲0時,會拋出異常,也就是執行except塊中的代碼,過程如下:

請輸入分子:20
請輸入分母:0
分母不能爲0,請重新輸入分母!
請輸入分母:12
x / y = 1.6666666666666667

----------------支持作者請轉發本文,也可以加李寧老師微信:unitymarvel,或掃描下面二維碼加微信--------
在這裏插入圖片描述

歡迎關注 極客起源 微信公衆號,更多精彩視頻和文章等着你哦!
在這裏插入圖片描述

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章