新聞中心
什么是異常?

創(chuàng)新互聯(lián)主營安鄉(xiāng)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),安鄉(xiāng)h5小程序開發(fā)搭建,安鄉(xiāng)網(wǎng)站營銷推廣歡迎安鄉(xiāng)等地區(qū)企業(yè)咨詢
1.錯誤
從軟件方面來說,錯誤是語法或是邏輯上的。錯誤是語法或是邏輯上的。
語法錯誤指示軟件的結(jié)構(gòu)上有錯誤,導(dǎo)致不能被解釋器解釋或編譯器無法編譯。這些些錯誤必須在程序執(zhí)行前糾正。
當(dāng)程序的語法正確后,剩下的就是邏輯錯誤了。邏輯錯誤可能是由于不完整或是不合法的輸入所致;
在其它情況下,還可能是邏輯無法生成、計算、或是輸出結(jié)果需要的過程無法執(zhí)行。這些錯誤通常分別被稱為域錯誤和范圍錯誤。
當(dāng)python檢測到一個錯誤時,python解釋器就會指出當(dāng)前流已經(jīng)無法繼續(xù)執(zhí)行下去。這時候就出現(xiàn)了異常。
2.異常
對異常的最好描述是:它是因為程序出現(xiàn)了錯誤而在正??刂屏饕酝獠扇〉男袨椤?/p>
這個行為又分為兩個階段:首先是引起異常發(fā)生的錯誤,然后是檢測(和采取可能的措施)階段。
第一階段是在發(fā)生了一個異常條件(有時候也叫做例外的條件)后發(fā)生的。
只要檢測到錯誤并且意識到異常條件,解釋器就會發(fā)生一個異常。引發(fā)也可以叫做觸發(fā),拋出或者生成。解釋器通過它通知當(dāng)前控制流有錯誤發(fā)生。
python也允許程序員自己引發(fā)異常。無論是python解釋器還是程序員引發(fā)的,異常就是錯誤發(fā)生的信號。
當(dāng)前流將被打斷,用來處理這個錯誤并采取相應(yīng)的操作。這就是第二階段。
對于異常的處理發(fā)生在第二階段,異常引發(fā)后,可以調(diào)用很多不同的操作。
可以是忽略錯誤(記錄錯誤但不采取任何措施,采取補救措施后終止程序。)或是減輕問題的影響后設(shè)法繼續(xù)執(zhí)行程序。
所有的這些操作都代表一種繼續(xù),或是控制的分支。關(guān)鍵是程序員在錯誤發(fā)生時可以指示程序如何執(zhí)行。
python用異常對象(exception object)來表示異常。遇到錯誤后,會引發(fā)異常。
如果異常對象并未被處理或捕捉,程序就會用所謂的回溯(traceback)終止執(zhí)行
異常處理
捕捉異??梢允褂胻ry/except語句。
try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息并處理。
如果你不想在異常發(fā)生時結(jié)束你的程序,只需在try里捕獲它。
語法:
以下為簡單的try....except...else的語法:
Try的工作原理是,當(dāng)開始一個try語句后,python就在當(dāng)前程序的上下文中作標(biāo)記,這樣當(dāng)異常出現(xiàn)時就可以回到這里,try子句先執(zhí)行,接下來會發(fā)生什么依賴于執(zhí)行時是否出現(xiàn)異常。
如果當(dāng)try后的語句執(zhí)行時發(fā)生異常,python就跳回到try并執(zhí)行第一個匹配該異常的except子句,異常處理完畢,控制流就通過整個try語句(除非在處理異常時又引發(fā)新的異常)。
如果在try后的語句里發(fā)生了異常,卻沒有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結(jié)束程序,并打印缺省的出錯信息)。
如果在try子句執(zhí)行時沒有發(fā)生異常,python將執(zhí)行else語句后的語句(如果有else的話),然后控制流通過整個try語句。
使用except而不帶任何異常類型
可以不帶任何異常類型使用except,如下實例:
以上方式try-except語句捕獲所有發(fā)生的異常。但這不是一個很好的方式,我們不能通過該程序識別出具體的異常信息。因為它捕獲所有的異常。
本文標(biāo)題:創(chuàng)新互聯(lián)Python教程:Python異常處理知識點匯總,五分鐘就能學(xué)會
本文路徑:http://www.5511xx.com/article/coshghg.html


咨詢
建站咨詢
