python異常處理

2021-10-19 15:10:26 字數 2161 閱讀 3992

error(錯誤)是系統中的錯誤,程式設計師是不能改變的和處理的,如系統崩潰,記憶體空間不足,方法呼叫棧溢等。遇到這樣的錯誤,建議讓程式終止

exception(異常)表示程式可以處理的異常,可以捕獲且可能恢復。遇到這類異常,應該盡可能處理異常,使程式恢復執行,而不應該隨意終止異常

常見的異常:

attributeerror(屬性錯誤) 、ioerror(輸入輸出錯誤) 、importerror (匯入模組錯誤)、indexerror(索引錯誤)、syntaxerror(語法錯誤)、typeerror(型別錯誤)、valueerror、keyerror(字典錯誤)、nameerrorindentationerror(縮排錯誤)、keyboardinterrupt: (ctrl+c被按下)、unboundlocalerror(有同名的全域性變數)

# print(a)   # nameerror

# print(10/0) # zerodivsionerror

# d =

# print(d['age']) # keyerror

# with open('hello.txt') as f: # filenotfounderror

# pass

# indentationerror:縮排錯誤

# a=b=18

# if a>b:

# print('錯誤')

# else:

# print('正確')

官方文件

"""

python 的異常機制主要依賴 try 、except 、else、finally 和 raise 五個關鍵字。

try 關鍵字後縮排的**塊簡稱 try 塊,它裡面放置的是可能引發異常的**;

except 關鍵字對應異常型別和處理該異常的**塊;

多個 except 塊之後可以放乙個 else 塊,表明程式不出現異常時還要執行 else 塊;

finally 塊用於**在 try 塊裡開啟的物理資源,異常機制會保證 finally 塊總被執行;

raise 用於引發乙個實際的異常,raise 可以單獨作為語句使用,引發乙個具體的異常物件

""""""

異常處理機制:

else:沒有異常時,執行的內容

finally: 總會執行的內容

"""try

: a =

1print

(b)except nameerror as e:

print

('0-name error'

)except keyerror:

print

('4-key error'

)except exception as e:

print

('1-exception'

)else

:print

('2-no error'

)finally

:print

('3-run code'

)# 0-name error

# 3-run code

age =

int(

input

('age:'))

if0150:

print

(age)

else

:# 丟擲異常

raise valueerror(

"年齡必須在0~150之間"

# 自定義的異常

class

ageerror

(valueerror)

:pass

age =

int(

input

('age:'))

if0150:

print

(age)

else

:# 丟擲異常

raise ageerror(

"年齡必須在0~150之間"

)

python異常處理 Python 異常處理

使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...

python異常舉例 Python異常處理

1.1異常問題舉例 例一 i input 請輸入數字 請輸入數字 0 print i print 5 int i traceback most recent call last file line 1,in zerodivisionerror division by zero 上述 的報錯是除零的錯...

python異常處理

當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file l...