python的異常有哪些 Python異常處理

2021-10-21 06:57:20 字數 1851 閱讀 3158

python異常處理    >>>

什麼是異常處理?

程式在執行過程**現了不可預知的錯誤

並且該錯誤沒有對應的處理機制,那麼就會以異常的形式表現出來

造成的影響就是整個程式無法正常執行

異常的結構

1.異常的型別:nameerror

2.異常的資訊:name 'abc' is not defined

3.異常的位置:traceback (most recent call last): file "路徑", line 1, in abc

異常的種類:

1.語法錯誤

是你程式立刻就能解決的,這種錯誤是不能被容忍的,語法上的錯誤,發現之後應該立刻解決

2.邏輯錯誤

這種錯誤是可以被容忍的,因為一眼看不出來,針對邏輯上的錯誤,可以採用異常處理機制進行捕獲

常見的錯誤型別

nameerror     名字錯誤

syntaxerror    語法錯誤

keyerror         健不存在

valueerror      值錯誤

indexerror      索引錯誤

typeerror       型別錯誤

異常處理

在你認為可能出現bug的**塊上方try一下

try:

可能出錯的**except 出錯的型別 as e: #將報錯資訊賦值給變數e

出錯之後的處理機制

注意try內部的**塊越少越好

try後可跟多種except異常型別的捕獲,但是不會連續連續捕獲,因為有乙個錯誤發生之後,會立刻停止**的執行,執行該型別錯誤的except語句

try:

name

l= [1,2,3]

l[111]

d= d['password']exceptnameerror:print('nameerror')exceptindexerror:print('indexerror')exceptkeyerror:print('keyerror')

exception 所有異常的基類,所有異常型別都**獲

try:#name

l = [1,2,3]

l[111]#d =

#d['password']

except exception: #萬能異常 所有的異常型別都**獲

print('老子天下無敵')else:print('被檢測的**沒有任何的異常發生 才會走else')finally:print('無論被檢測的**有沒有異常發生 都會在**執行完畢之後執行我')

except後可跟else 被檢測**沒有任何異常才會走else

except後可跟finally 被檢測**無論有沒有異常都會走finally

raise 主動丟擲異常

if 'egon' == 'dsb':pass

else:raise typeerror('盡說大實話')

assert 斷言、語言,猜某個資料的狀態,猜對了不影響**執行,猜錯了直接報錯

l = [1,2,3]assert len(l) < 0 #斷言 預言

自定義異常

classmyerror(baseexception):def __init__(self,msg):

super().__init__()

self.msg=msgdef __str__(self):return '' %self.msgraise myerror('我自己定義的異常') #主動丟擲異常其實就是將異常類的物件列印出來,會走__str__方法

end

異常有哪些分類

所有異常都是 throwable 的子類,分為 error 和 exception。受檢異常 無能為力型,如欄位超長導致的 sqlexception。力所能及型,如未授權異常 unauthorizedexception,程式可跳轉許可權申請頁面。常見受檢異常還有 filenotfoundexcept...

常發生的異常有哪些, 如何使用異常?

常用預定義例外 cursor already open ora 06511 sqlcode 6511 游標已經開啟 dup val on index ora 00001 sqlcode 1 違反唯一性約束 invalid cursor ora 01001 sqlcode 1001 非法游標操作 in...

python金融分析 用於金融分析的Python包

recommended by activestate.1.numpy 實現各種陣列物件函式和傅利葉變換等等科學計算模組。3.matplotlib 乙個跨平台的數值繪圖包,可繪製高質量的2d,3d影象。4.mysql for python python操作mysql資料庫的介面軟體包。5.pyqt 乙...