python異常處理筆記

2022-01-05 壓力哥說

收錄於話題 #python基礎 7個

What:python異常處理是什麼?

異常是Python對象,表示一個錯誤。異常是一個事件,該事件會在程序執行過程中發生,影響了程序的正常執行。

異常主要依賴5個關鍵字

try:這個關鍵詞是異常拋出必須使用的。該關鍵字後的代碼塊是程序正常功能的代碼實現,可能會引發異常。是進行異常捕捉、處理的前提。

except:包含對應異常類型和處理這種異常類型的代碼塊。

else:位於多個except塊後,當程序不出現異常時,執行else塊。

finally:必須位於所有except塊之後,主要用於回收try塊裡面打開的物理資源。

raise:引發一個實際的異常。raise只有一個參數,用來指定要被拋出的異常,它必須是一個異常的實例或者是一個異常的類(也就是Exception的子類)。

異常的捕捉&處理

try:
邏輯代碼塊
except 異常類型:
異常處理邏輯

異常的拋出機制

如果在運行時發生異常,解釋器會查找相應的處理語句(稱為handler)。

要是在當前函數裡沒有找到的話,它會將異常傳遞給上層的調用函數,看看那裡能不能處理。

如果在最外層(全局「main」)還是沒有找到的話,解釋器就會退出,同時列印出traceback以便讓用戶找到錯誤產生的原因。

常見的異常

    ImportError

    無法引入模塊或包,大部分是路徑問題或名稱錯誤

    

    IOError

    輸入輸出異常,大部分是無法打開文件。

    

    TypeError

    傳入對象類型與要求的不符合

    

    NameError

    使用一個還未被賦予對象的變量

    

    ValueError

    傳入一個調用者不期望的值,即使值的類型是正確的。

    

    KeyError

    嘗試訪問字典裡不存在的鍵

    

    IndexError

    索引錯誤,一般用於list,指定的偏移量超過了列表的長度範圍。

    

    SyntaxError

    Python代碼邏輯語法出錯,不能執行

    

    keyboardInterrupt

    用戶中斷執行

    

    UnboundLocalError

    試圖訪問一個還未設置的全局變量,基本上是由於另一個同名的全局變量,導致你以為在訪問。

    

    AttributeError

    試圖訪問一個對象沒有的屬性

    

    IndentationError

    語法錯誤,代碼沒有正確的對齊

    

    AssertionError

    assert語句失敗

異常類的繼承

異常類的繼承 自定義異常,應該繼承Exception類

訪問異常詳細信息的辦法

如果程序想要在except中訪問異常對象的相關信息,可以通過為異常對象聲明變量來實現。

異常對象中包含 args和with_traceback(),其中args該屬性返回異常的錯誤編號和描述字符串。with_traceback()方法處理異常的傳播軌跡信息,Python程序的traceback信息均來源於一個叫做traceback object的對象,而這個traceback object通常是通過函數sys.exc_info()來獲取的。

相關焦點

  • Python異常處理
    問題描述大家在使用python語言寫代碼的時候難免會出一些錯誤,而才入門的朋友們往往不知道是哪裡出了錯或者不知道自己錯在哪裡、什麼錯誤。所以我們要知道是哪行代碼出錯,其次室錯誤的類型是什麼,錯在那個細節,逐步分析,從而解決錯誤並改正。
  • python入門——Python中異常處理
    python大數據課堂已經開始了。想轉行大數據,數據挖掘,機器學習,人工智慧的小夥伴可以關注啦。上一篇帶大家了解了python中的I/O函數。今天我們來繼續了解python中的異常處理。調試環境以python3.6環境為例。需要代碼和demo的朋友可以搜索「欒鵬全棧」到我的CSDN博客。
  • python基礎---異常處理
    程序的異常處理今天霖小白心血來潮想來分享一下python基礎中的如何異常處理,使程序有更好的用戶體驗。前言python程序對用戶的輸入有一定的要求,所以當實際輸入不滿足程序要求時,可能在程序運行過程中會直接報錯無法進行下一步的運行。
  • python入門學習異常處理類型
    前言異常是指在程序執行過程中發生的一個事件,影響了程序的正常執行,例如:0做了分母。異常是Python對象,表示一個錯誤。當Python腳本發生異常時我們需要捕獲處理它,否則程序會終止執行。在Java語言中我們知道異常的常用結構為try catch組成,有時也會用到finally,那麼在python中異常是如何來處理的呢?python中的異常處理1.python異常簡單語法python異常的簡單語法為try-except-else語法,注意這裡的關鍵字是except而不是Exception,這與java是有區別的。
  • python面向對象之異常處理
    異常的概念 程序在運行時,如果 `Python 解釋器` 遇到 到一個錯誤,會停止程序的執行,並且提示一些錯誤信息,這就是 異常 程序停止執行並且提示錯誤信息 這個動作,我們通常稱之為:拋出(raise)異常> 程序開發時,很難將 所有的特殊情況 都處理的面面俱到,通過 異常捕獲 可以針對突發事件做集中的處理,從而保證程序的 穩定性和健壯性
  • [Python]文件與異常的錯誤處理
    [Python]文件與異常的錯誤處理1.文件的處理過程# 文件基本操作:打開文件,處理文件,關閉文件the_file = open("sketch.txt", 'r')line_content = the_file.readline()  # 不指定readline的參數,讀取一整行print(line_content)
  • python 異常處理
    對於python來說,就是工廠類被具體工廠繼承。這樣在簡單工廠模式裡集中在工廠方法上的壓力可以由工廠方法模式裡不同的工廠子類來分擔。抽象的工廠類提供了一個創建對象的方法,也叫作工廠方法。1) 抽象工廠角色(Factory): 這是工廠方法模式的核心,它與應用程式無關。是具體工廠角色必須實現的接口或者必須繼承的父類。
  • python異常處理與上下文管理器
    作者丨王翔丨來研丨清風Pythonpython異
  • 一篇文章幫你搞定Python異常處理
    =1+'str'什麼是異常異常就是程序運行時發生錯誤的信號,在python中,錯誤觸發的異常如下Python中異常種類在python中不同的異常可以用不同的類型(python中統一了類與類型,類型即類)去標識,不同的類對象標識不同的異常,一個異常標識一種錯# 觸發IndexErrorl=['run1','aa']
  • 【Python 第36課】 異常處理
    Python27/test.py", line 1, in <module>    print int('0.5')ValueError: invalid literal for int() with base 10: '0.5'意思是,在test.py這個文件,第1行,print int('0.5')這裡,你拿了一個不是10進位能夠表示的字符,我沒法把它轉成
  • python教程之九錯誤和異常處理
    大多數的異常都不會被程序處理,都以錯誤信息的形式展現在這裡:>>> 10 * (1/0)Traceback (most recent call last):File "<pyshell#78>", line 1, in <module>10 * (1/0)ZeroDivisionError
  • Python異常處理(Python學習筆記05)
    異常處理異常處理是編寫代碼必須要完成的內容,對於不符合預期的用戶操作或數據輸入,程序總是會出現異常情況,而對異常情況能夠妥善處理,是保證程序穩定性的關鍵工作之一。異常出現的原因非常多,邏輯錯誤、用戶輸入錯誤都會造成異常。
  • 【python學習】python的常見異常類
    盤庚即位後,自奄(今山東曲阜)遷都至殷(今河南安陽小屯),開墾荒地,長期定居下來。穩定的局面挽回了九世之亂以來商朝的衰落之勢。今天講python的標準異常類。有需要的也可以直接去我的github查看全部筆記:https://github.com/JackKoLing/python_notes_with_ten_days俗話說:「好記性不如爛筆頭」,多寫寫多記記,總不會錯。多一些不為什麼的堅持,少一些功利主義的追求。
  • python學習筆記(9): try...except 異常捕獲
    目前正在學習python基礎,同時也在leetcode-cn上刷算法題目,有興趣的同學一起哦。最近學習了python如何處理異常,發現一篇比較好的文章,整理了一下,供大家學習研究。一、什麼是異常?當無法正確處理程序時就會出現異常。當異常發生時我們需要捕獲處理它,否則程序會終止執行。
  • 十、python基礎之異常處理結構與程序調試方法
    實驗目的:學習python的異常處理和程序調試實驗環境:已正確安裝python3.51、異常的基本概念異常是指程序運行時引發的錯誤,得不到正確的處理將會導致程序終止運行合理地使用異常處理結構可以使得程序更加健壯,具有更強的容錯性。例如:最常見的除數為0,python會拋出「ZeroDivisionError"異常。
  • python他律筆記系列二
    續接昨天的他律筆記一:f-stringf'{    } {   }'表示對應的需要轉換的字符字典中通過
  • 深入 Python 異常處理
    【導語】:本文結合例程總結Python異常處理的相關知識,幫你深入理解python異常處理。在Python 中的錯誤和異常是什麼?通常來說,程序中的錯誤至少包括兩種,一種是語法錯誤,另一種則是異常。keyError 字典的鍵找不到和FileNotFoundError 文件不存在try except使用Python的異常處理語句,可以非常優雅地處理發生的異常。
  • Python學習第50課-處理錯誤和異常
    【每天幾分鐘,從零入門python編程的世界!】在工作當中會經常出現意料不到的錯誤和異常,就需要我們對可能出現的錯誤和異常進行預判,然後加上捕獲和處理錯誤異常的代碼,否則,程序在運行過程中,遇到錯誤和異常就會crash崩潰,無法繼續向下執行。●Python的錯誤種類:①語法錯誤,或稱解析錯誤。
  • Python異常捕獲與處理
    什麼是異常?異常即是一個事件,該事件會在程序執行過程中發生,影響了程序的正常執行。一般情況下,在Python無法正常處理程序時就會發生一個異常。異常是Python對象,表示一個錯誤。當Python腳本發生異常時我們需要捕獲處理它,否則程序會終止執行。當一個未捕獲的異常發生時,Python將結束程序並列印一個堆棧跟蹤信息,以及異常名和附加信息。
  • 【Python基礎】10 異常處理
    一 什麼是異常異常是程序發生錯誤的信號。程序一旦出現錯誤,便會產生一個異常,若程序中沒有處理它,就會拋出該異常,程序的運行也隨之終止。為了保證程序的容錯性與可靠性,即在遇到錯誤時有相應的處理機制不會任由程序崩潰掉,我們需要對異常進行處理,處理的基本形式為try:    被檢測的代碼塊except 異常類型:    檢測到異常,就執行這個位置的邏輯