新聞中心
什么是異常?

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


咨詢
建站咨詢
