Python修煉之路 異常

2022-07-19 05:03:10 字數 3351 閱讀 4471

在程式出現bug時一般不會將錯誤資訊直接顯示給使用者,而是可以自定義顯示內容或處理。

常見異常

attributeerror             #

試圖訪問乙個物件沒有的樹形,比如foo.x,但是foo沒有屬性x

ioerror #

輸入/輸出異常;基本上是無法開啟檔案

importerror #

無法引入模組或包;基本上是路徑問題或名稱錯誤

indentationerror #

語法錯誤(的子類) ;**沒有正確對齊

indexerror #

下標索引超出序列邊界,比如當x只有三個元素,卻試圖訪問x[5]

keyerror #

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

keyboardinterrupt #

ctrl+c被按下

nameerror #

使用乙個還未被賦予物件的變數

syntaxerror #

python**非法,**不能編譯

typeerror #

傳入物件型別與要求的不符合

unboundlocalerror #

試圖訪問乙個還未被設定的區域性變數,基本上是由於另有乙個同名的全域性變數,導致你以為正在訪問它

valueerror #

傳入乙個呼叫者不期望的值,即使值的型別是正確的

更多異常

arithmeticerror

assertionerror

attributeerror

baseexception

buffererror

byteswarning

deprecationwarning

environmenterror

eoferror

exception

floatingpointerror

futurewarning

generatorexit

importerror

importwarning

indentationerror

indexerror

ioerror

keyboardinterrupt

keyerror

lookuperror

memoryerror

nameerror

notimplementederror

oserror

overflowerror

pendingdeprecationwarning

referenceerror

runtimeerror

runtimewarning

standarderror

stopiteration

syntaxerror

syntaxwarning

systemerror

systemexit

taberror

typeerror

unboundlocalerror

unicodedecodeerror

unicodeencodeerror

unicodeerror

unicodetranslateerror

unicodewarning

userwarning

valueerror

warning

zerodivisionerror

更多異常

indexerror

list = ["

a", '

b',1]

try:

list[10]

except

indexerror as e:

print('

out of range')

#out of range

keyerror

#

-*-coding:utf-8 -*-

dic =

try:

dic['k2

']except

keyerror as e:

print('

no key: %s

'%e)

#no key: 'k2'

valueerror

s1 = '

hello

'try

: int(s1)

except

valueerror as e:

print('

%s not int

'%e)

#invalid literal for int() with base 10: 'hello' not int

異常類只能用來處理指定的異常情況,如果非指定異常則無法處理,捕獲異常的方式:

s1 = '

hello

'try

: int(s1)

#同時監測多個異常

except

indexerror as e:

print('

%s index out of range

'%e)

except

keyerror as e:

print('

no key %s

'%e)

except

valueerror as e:

print("

vlaue error: %s

" %e)

#萬能異常,如果存在異常,前面沒有捕獲到,則exception處理

#注:並不是所有的異常都能捕獲的

except

exception as e:

print("

error")

#如果沒有異常,主**執行完執行else後面的**

else

:

print("

run ok")

#無論是否有異常,finally後面的**都會在最後執行

finally

:

print("

run over")

##vlaue error: invalid literal for int() with base 10: 'hello'

#run over

Python學習之路 異常

在我們編寫python程式的過程中,常常會因為各種原因導致我們的程式出現錯誤,這就是程式出現異常。由於在python程式中,程式一旦出現異常,那麼整個程式會立即終止,異常後面的 都不會執行 異常前面的 會執行,在這裡也體現出python是編譯性語言的特徵 為了不讓我們的程式一旦出現出現異常就卡死,我...

C 修煉之路 map

關聯容器map是鍵 值對的集合,鍵可以作為map的下標對值進去操作。這一操作有些像陣列,所以map也可以看成關聯陣列。使用map需包含標頭檔案 include map的定義為 mapmap val 其中k為鍵索引的型別,v為關聯值得型別。map的建構函式有三種形式 mapm 空map物件 mapm ...

Python之路 檔案 異常和測試

今天是看python理論部分的最後一塊,檔案的讀寫,python中的異常和用python測試。讀with open 檔名.檔案字尾名 as 檔案物件名 變數名 檔案物件名.read print 變數名 寫with open 檔名.檔案字尾名 w as 檔案物件名 變數名 檔案物件名.write 寫入...