python中的異常處理tryexcept

2021-08-30 04:17:57 字數 2192 閱讀 9247

1、異常基礎

在程式設計過程中為了增加友好性,在程式出現bug時一般不會將錯誤資訊顯示給使用者,而是現實乙個提示的頁面,通俗來說就是不讓使用者看見大黃頁!!!

2.異常種類

names = ['張三','李四']

# names['sdfsdf']

# data = {}##

try:

open("tes.txt")

except (keyerror,indexerror) as e : # 兩種錯誤可以放在一起,但是如果現實檢測到後面的那個錯誤,那麼直接就會跳出去

print("沒有這個key",e) # 而且不會執行檢測到前面乙個錯誤

except indexerror as e :

print("列表操作錯誤",e)

except exception as e: # 又叫做萬能異常,可以捕獲任意異常

print("未知錯誤",e)

else:

print("一切正常") # 當沒有錯誤的時候執行

finally:

print("不管有沒有錯,都執行")

# except exception as e: # 一般是放在後面抓取未知的錯誤

# 但是像是縮排錯誤這種錯誤的話,是抓不到的,因為當遇到縮排錯誤的時候,**根本不會繼續進行下去的

3.主動觸發異常

try:

raise exception('錯誤了。。。')

except exception as e:

print e

4、自定義異常

class wupeiqiexception(exception):

def __init__(self, msg):

self.message = msg

def __str__(self):

return self.message

try:

raise wupeiqiexception('我的異常')

except wupeiqiexception as e:

print e

5.異常種類

python中的異常種類非常多,每個異常專門用於處理某一項異常!!!

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

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

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

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

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

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

keyboardinterrupt ctrl+c被按下

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

syntaxerror python**非法,**不能編譯(個人認為這是語法錯誤,寫錯了)

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

unboundlocalerror 試圖訪問乙個還未被設定的區域性變數,基本上是由於另有乙個同名的全域性變數,

導致你以為正在訪問它

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

例項1:indexerror

dic = ["wupeiqi", 'alex']

try:

dic[10]

except indexerror as e:

print e

例項2.keyerror

dic = 

try:

dic['k20']

except keyerror as e:

print e

例項3.valueerror

s1 = 'hello'

try:

int(s1)

except valueerror as e:

print e

Swift異常處理的try?與try!

首先要明白丟擲異常後異常的運動 異常被丟擲後,中斷整個處理,異常不斷向外層 範圍 傳遞,直到遇到catch 塊群,會與catch 塊的條件進行匹配,匹配符合則進入此 塊處理。如果遇到沒有條件的catch 那麼直接在這個 裡處理。如果丟擲的異常一直到最外層仍沒有被catch 處理,那麼程式會卡住 後面...

python 詳解 try 處理異常機制

python的try語句有兩種風格 try 語句子句形式表 try的工作原理是,當開始乙個try語句後,python就在當前程式的上下文中作標記,這樣當異常出現時就可以回到這裡,try子句先執行,接下來會發生什麼依賴於執行時是否出現異常。一 try except else風格 try except ...

Python小筆記 Try函式 異常處理

異常處理 捕捉異常可以使用try except語句。try except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常資訊並處理。如果你不想在異常發生時結束你的程式,只需在try裡捕獲它。語法 以下為簡單的try except else的語法 try 語句 執行別的 except ...