国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

深入理解Python異常處理的哲學

2020-02-16 01:02:51
字體:
來源:轉載
供稿:網友

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

0. 前言

工作中,程序員之間一言不合就亮代碼,畢竟不管是代碼本身還是其執行過程,不會存在二義性,更不會含糊不清,代碼可謂是程序員之間的官方語言。但是其處理問題的邏輯或者算法則并非如此。

讓我至今記憶猶新的兩次程序員論劍有:

反問一:項目后期所有的異常處理都要去掉,不允許上線后出現未知的異常,把你這里的異常處理去掉,換成if else;

反問二:這里為什么要進行異常處理?代碼都是你寫的,怎么會出現異常呢?

這是我親身經歷的,不知道大家碰到這兩個問題會怎樣回答,至少我當時竟無言以對。這兩個問題分別在不同的時間針對不同的問題出自一個互聯網巨頭中某個資深QA和資深開發的反問。

暫且不論對錯,畢竟不同人考慮問題的出發點是不同的。但是從這么堅決的去異常處理的回答中至少有一點可以肯定,那就是很多人對自己的代碼太過自信或者說是察覺代碼潛在問題的直覺力不夠,更別提正確的處理潛在的問題以保證重要業務邏輯的處理流程。寫代碼的時候如果只簡單考慮正常的情況,那是在往代碼中下毒。

接下類本篇博文將按照套路出牌(避免被Ctrl + W),介紹一下python的異常處理的概念和具體操作.

1. 為什么要異常處理

常見的程序bug無非就兩大類:

語法錯誤; 邏輯不嚴謹或者思維混亂導致的邏輯錯誤;

顯然第二種錯誤更難被發現,且后果往往更嚴重。無論哪一種bug,有兩種后果等著我們:一、程序崩掉;二、執行結果不符合預期;

對于一些重要關鍵的執行操作,異常處理可以控制程序在可控的范圍執行,當然前提是正確的處理。

比如我們給第三方提供的API或者使用第三方提供的API。多數情況下要正確的處理調用者錯誤的調用參數和返回異常結果的情況,不然就可能要背黑鍋了。

在不可控的環境中運行程序,異常處理是必須的。然而困難的地方是當異常發生時,如何進行處理。

2. python異常處理

下面逐步介紹一下python異常處理相關的概念。

2.1 異常處理結構

必要的結構為try ... except,至少有一個except,else 和 finally 可選。

try: code blocksexcept (Exception Class1, Exception Class2, ...) as e: catch and process exceptionexcept Exception ClassN: catch and process exception... ...else: when nothing unexpected happened finally: always executed when all to end            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜川县| 定州市| 申扎县| 镇原县| 太和县| 南通市| 额敏县| 双辽市| 宜宾县| 广昌县| 淮滨县| 古浪县| 玉屏| 新乐市| 疏附县| 清徐县| 游戏| 安西县| 青岛市| 五峰| 博罗县| 文成县| 万全县| 黄石市| 武川县| 清丰县| 通道| 盐亭县| 余江县| 葵青区| 海淀区| 吉木乃县| 红桥区| 乌什县| 黎城县| 泾川县| 南靖县| 松潘县| 中宁县| 海兴县| 梁河县|