溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python異常處理相關(guān)應(yīng)用技術(shù)有哪些

發(fā)布時間:2021-11-19 13:11:02 來源:億速云 閱讀:153 作者:iii 欄目:編程語言

這篇文章主要介紹“Python異常處理相關(guān)應(yīng)用技術(shù)有哪些”,在日常操作中,相信很多人在Python異常處理相關(guān)應(yīng)用技術(shù)有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python異常處理相關(guān)應(yīng)用技術(shù)有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

Python異常處理有很強(qiáng)大處理能力,把錯信息的顯示給客戶,在Python異常處理中,可以對其運(yùn)行操作,下面是我們是對Python異常處理進(jìn)行的一個詳細(xì)的介紹,希望大家瀏覽這篇文章有所收獲。

Python的異常處理能力是很強(qiáng)大的,可向用戶準(zhǔn)確反饋出錯信息。在Python中,異常也是對象,可對它進(jìn)行操作。所有異常都是基類Exception的成員。所有異常都從基類Exception繼承,而且都在exceptions模塊中定義。Python自動將所有異常名稱放在內(nèi)建命名空間中,所以程序不必導(dǎo)入exceptions模塊即可使用異常。一旦引發(fā)而且沒有捕捉SystemExit異常,程序執(zhí)行就會終止。如果交互式會話遇到一個未被捕捉的SystemExit異常,會話就會終止。

1.使用try和except語句來捕獲異常

try:     block  except [exception,[data…]]:     block   try:  block  except [exception,[data...]]:     block  else:     block

該種 Python異常處理語法的規(guī)則是:
◆執(zhí)行try下的語句,如果引發(fā)異常,則執(zhí)行過程會跳到***個except語句。
◆如果***個except中定義的異常與引發(fā)的異常匹配,則執(zhí)行該except中的語句。
◆如果引發(fā)的異常不匹配***個except,則會搜索第二個except,允許編寫的except數(shù)量沒有限制。
◆如果所有的except都不匹配,則異常會傳遞到下一個調(diào)用本代碼的***層try代碼中。
◆如果沒有發(fā)生異常,則執(zhí)行else塊代碼。

例:

try:      f = open(“file.txt”,”r”)  except IOError, e:     print e

捕獲到的IOError錯誤的詳細(xì)原因會被放置在對象e中,然后運(yùn)行該異常的except代碼塊

捕獲所有的異常

try:     a=b    b=c except Exception,ex:     print Exception,":",ex

2.使用try跟finally:

語法如下:

try:     block  finally:     block

3. 用raise語句手工引發(fā)一個異常:

raise [exception[,data]]

在Python中,要想引發(fā)異常,最簡單的形式就是輸入關(guān)鍵字raise,后跟要引發(fā)的異常的名稱。異常名稱標(biāo)識出具體的類: Python異常處理是那些類的對象。執(zhí)行raise語句時,Python會創(chuàng)建指定的異常類的一個對象。raise語句還可指定對異常對象進(jìn)行初始化的參數(shù)。為此,請在異常類的名稱后添加一個逗號以及指定的參數(shù)(或者由參數(shù)構(gòu)成的一個元組)。

例:

try:      raise MyError #自己拋出一個異常  except MyError:      print 'a error'   raise ValueError,’invalid argument’

捕捉到的內(nèi)容為:

type = VauleError message = invalid argument

4. 采用traceback(跟蹤)模塊查看異常

  1. try:  

  2. block  

  3. except:  

  4.    traceback.print_exc()  


  5.    

  6. 示例:…excpetion/traceback.py  


5. 采用sys模塊回溯***的異常  

或者以如下的形式:

import sys      tp,val,td = sys.exc_info()   sys.exc_info()的返回值是一個tuple, (type, value/message, traceback)
  • 探秘Python對象體系

  • 用Python標(biāo)準(zhǔn)庫修改搜索引擎獲取結(jié)果

  • Python編程在Nginx中的使用方法

  • Python腳本在VIM環(huán)節(jié)中的系統(tǒng)介紹

  • python處理文本如何在vim中使用

這里的type ---- 異常的類型

value/message ---- 異常的信息或者參數(shù)

traceback ---- 包含調(diào)用棧信息的對象。

從這點(diǎn)上可以看出此方法涵蓋了traceback.

6. 異常處理的一些其它用途

除了處理實際的錯誤條件之外,對于 Python異常處理還有許多其它的用處。在標(biāo)準(zhǔn) Python 庫中一個普通的用法就是試著導(dǎo)入一個模塊,然后檢查是否它能使用。導(dǎo)入一個并不存在的模塊將引發(fā)一個 ImportError 異常。你可以使用這種方法來定義多級別的功能――依靠在運(yùn)行時哪個模塊是有效的,或支持多種平臺 (即平臺特定代碼被分離到不同的模塊中)。

你也能通過創(chuàng)建一個從內(nèi)置的 Exception 類繼承的類定義你自己的異常,然后使用 raise 命令引發(fā)你的異常

到此,關(guān)于“Python異常處理相關(guān)應(yīng)用技術(shù)有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI