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 ...