Python3 錯誤和異常-(try/except/else/finally/raise/assert)


一、異常處理

來個總的圖例子:

以下實例中 finally 語句無論異常是否發生都會執行:

二、拋出異常

Python 使用 raise 語句拋出一個指定的異常。

raise語法格式如下:

raise [Exception [, args [, traceback]]]

第一個參數someException是觸發異常的名稱,異常名稱是Python提供的標准異常中的任何一種;

第二個參數args是可選的,args可以是一個元組,也可以是單獨的字符串。大多數情況下,單一的字符串用來指示錯誤發生的原因。如果傳的是元組,通常的組成是一個錯誤字符串、一個錯誤編號、一個處理錯誤的函數地址等;

第三個參數是一個traceback對象,它也是可選的,實際上這個參數很少使用,主要是用於跟蹤錯誤記錄。

使用raise語句可以主動拋出異常,用於處理因一些因用戶錯誤操作和輸入而產生的問題。Python提供的標准異常有可能不滿足程序一些特定的異常處理需求。例如用戶操作和輸入錯誤的一些異常。在這種情況下,可以創建自己的異常。

新創建的異常需要繼承於標准異常的基類或子類,這里可能會涉及到類的概念,關於類的概念,我們會在后面的章節予以介紹。下面是一個新建異常的例子。

上面的代碼新建了一個CustomError異常類,CustomError異常類繼承於Python標准異常的Exception類。在下面的代碼中,我們修改前面用戶登錄判斷的案例代碼,並使用自己新建的CustomError異常來處理問題。

三、Python3 assert(斷言)

Python assert(斷言)用於判斷一個表達式,在表達式條件為 false 的時候觸發異常。

斷言可以在條件不滿足程序運行的情況下直接返回錯誤,而不必等待程序運行后出現崩潰的情況,例如我們的代碼只能在 Linux 系統下運行,可以先判斷當前系統是否符合條件。

python assert 斷言句語格式及用法很簡單。在沒完善一個程序之前,我們不知道程序在哪里會出錯,與其讓它在運行最崩潰,不如在出現錯誤條件時就崩潰,這時候就需要assert斷言的幫助

python assert斷言的作用

python assert斷言是聲明其布爾值必須為真的判定,如果發生異常就說明表達式為假。可以理解assert斷言語句為raise-if-not,用來測試表示式,其返回值為假,就會觸發異常。

語法格式如下

assert expression

等價於:

if not expression:

raise AssertionError

   

assert 后面也可以緊跟參數:

assert expression [, arguments]

等價於:

if not expression:

raise AssertionError(arguments)

   

https://www.runoob.com/python3/python3-errors-execptions.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM