標籤:
地毯式地過文法終於快要結束了。。。
Python中的常見異常
1.NameError:嘗試訪問一個未初始化的變數
2. ZeroDivisionError:除數為0
3. SyntaxError:Python解譯器語法錯誤
4. IndexError:請求的索引超出序列的範圍
5. KeyError:請求一個不存在的字典關鍵字
6. IOError:輸入、輸出錯誤
7. AttributeError:嘗試訪問未知的對象屬性
等,這些錯誤都是來自於Exception類,Exception類和SystemExit、KeyboardInterrupt組成BasicException類,包含所有的異常情況
try…except…else…finally處理異常
try語句會監控語句中的異常,如果出現異常則會執行except 指定錯誤的語句,如果沒有錯誤成功執行完畢,則執行else語句,不論是否成功執行,都會執行finally語句。
except Exception[, reason],可以有多個,來處理不同的錯誤,Exception參數傳入一個錯誤類型的對象,reason返回具體異常的原因:
try:
? ? A
except MyException1:
? ? B
except MyException2:
? ? C
else:
? ? D
finally:
? ? E?
通過Exception或者BasicException可以捕獲到大多數甚至全部的異常。
with語句
with語句針對上下文管理類型的對象做文法上的簡化,比如檔案是常用的上下文管理類型:
with open(filename) as f:
? ? for line in f:
? ? ? ? pass
觸發異常raise語句
通過raise語句可以主動觸發異常:raise [someException ?[, args [, traceback ]]]
文法比較靈活複雜,沒有弄非常清楚,查手冊吧。。。
斷言
assert expression [, arguments]
可以產生一個斷言,如果斷言為假,則會產生一個AssertionError異常,同樣可以被捕獲到,如果沒有捕獲,則會終止程式。
Python學習_07_錯誤、異常