所謂異常指的是程序的執(zhí)行出現了非預期行為,就好比現實中的做一件事過程中總會出現一些意外的事。異常的處理是跨越編程語言的,和具體的編程細節(jié)相比,程序執(zhí)行異常的處理更像是哲學。限于認知能力和經驗所限,不可能達到像解釋器下import this看到的python設計之禪一樣,本文就結合實際使用簡單的聊一聊。

0. 前言
工作中,程序員之間一言不合就亮代碼,畢竟不管是代碼本身還是其執(zhí)行過程,不會存在二義性,更不會含糊不清,代碼可謂是程序員之間的官方語言。但是其處理問題的邏輯或者算法則并非如此。
讓我至今記憶猶新的兩次程序員論劍有:
反問一:項目后期所有的異常處理都要去掉,不允許上線后出現未知的異常,把你這里的異常處理去掉,換成if else;
反問二:這里為什么要進行異常處理?代碼都是你寫的,怎么會出現異常呢?
這是我親身經歷的,不知道大家碰到這兩個問題會怎樣回答,至少我當時竟無言以對。這兩個問題分別在不同的時間針對不同的問題出自一個互聯網巨頭中某個資深QA和資深開發(fā)的反問。
暫且不論對錯,畢竟不同人考慮問題的出發(fā)點是不同的。但是從這么堅決的去異常處理的回答中至少有一點可以肯定,那就是很多人對自己的代碼太過自信或者說是察覺代碼潛在問題的直覺力不夠,更別提正確的處理潛在的問題以保證重要業(yè)務邏輯的處理流程。寫代碼的時候如果只簡單考慮正常的情況,那是在往代碼中下毒。
接下類本篇博文將按照套路出牌(避免被Ctrl + W),介紹一下python的異常處理的概念和具體操作.
1. 為什么要異常處理
常見的程序bug無非就兩大類:
顯然第二種錯誤更難被發(fā)現,且后果往往更嚴重。無論哪一種bug,有兩種后果等著我們:一、程序崩掉;二、執(zhí)行結果不符合預期;
對于一些重要關鍵的執(zhí)行操作,異常處理可以控制程序在可控的范圍執(zhí)行,當然前提是正確的處理。
比如我們給第三方提供的API或者使用第三方提供的API。多數情況下要正確的處理調用者錯誤的調用參數和返回異常結果的情況,不然就可能要背黑鍋了。
在不可控的環(huán)境中運行程序,異常處理是必須的。然而困難的地方是當異常發(fā)生時,如何進行處理。
2. python異常處理
下面逐步介紹一下python異常處理相關的概念。
2.1 異常處理結構
必要的結構為try ... except,至少有一個except,else 和 finally 可選。
try: code blocks except (Exception Class1, Exception Class2, ...) as e: catch and process exception except Exception ClassN: catch and process exception ... ... else: when nothing unexpected happened finally: always executed when all to end
網站標題:深入理解Python異常處理的哲學-創(chuàng)新互聯
URL分享:http://www.chinadenli.net/article46/djdpeg.html
成都網站建設公司_創(chuàng)新互聯,為您提供App開發(fā)、定制開發(fā)、網站制作、網站收錄、手機網站建設、小程序開發(fā)
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯