自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python異常處理相關(guān)應(yīng)用技術(shù)手冊(cè)

開(kāi)發(fā) 后端
Python異常處理中使用try和except語(yǔ)句來(lái)捕獲異常語(yǔ)法的規(guī)則的詳細(xì)介紹,以及使用try跟finally語(yǔ)法、raise語(yǔ)句手工引發(fā)一個(gè)異常等相關(guān)介紹。

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

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

1.使用try和except語(yǔ)句來(lái)捕獲異常

  1. try:  
  2.    block  
  3. except [exception,[data…]]:  
  4.    block  
  5.  
  6. try:  
  7. block  
  8. except [exception,[data...]]:  
  9.    block  
  10. else:  
  11.    block  

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

例:

  1. try:  
  2.  
  3.    f = open(“file.txt”,”r”)  
  4. except IOError, e:  
  5.    print e  
  6.  

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

捕獲所有的異常

  1. try:  
  2.    a=b 
  3.    b=c 
  4. except Exception,ex:  
  5.    print Exception,":",ex  
  6.  

2.使用try跟finally:

語(yǔ)法如下:

  1. try:  
  2.    block  
  3. finally:  
  4.    block 

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

  1. raise [exception[,data]]  
  2.  

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

例:

  1. try:  
  2.     raise MyError #自己拋出一個(gè)異常  
  3. except MyError:  
  4.     print 'a error'  
  5.  
  6. raise ValueError,’invalid argument’  
  7.  

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

  1. type = VauleError 
  2. message = invalid argument  
  3.  

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

  1. try:  
  2. block  
  3. except:  
  4.    traceback.print_exc()  
  5.    
  6. 示例:…excpetion/traceback.py  

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

或者以如下的形式:

  1. import sys  
  2.     tp,val,td = sys.exc_info()  
  3.  
  4. sys.exc_info()的返回值是一個(gè)tuple, (type, value/message, traceback)  
  5.  

#t#

這里的type ---- 異常的類(lèi)型

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

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

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

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

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

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

責(zé)任編輯:佚名
相關(guān)推薦

2010-02-24 16:52:59

WCF支持WebGet

2010-03-11 15:01:52

Python源碼

2011-05-30 09:17:18

光纖

2023-01-06 19:02:23

應(yīng)用技術(shù)

2015-06-02 10:08:51

布線技術(shù)光纖

2010-04-14 16:24:44

寬帶無(wú)線接入

2015-09-01 10:14:21

機(jī)房直冷優(yōu)化

2009-08-05 18:28:05

C#異常處理

2010-02-04 17:05:53

C++動(dòng)態(tài)創(chuàng)建對(duì)象

2009-09-03 14:14:52

RHEL ASMySQLroot密碼

2021-09-13 14:39:34

云計(jì)算Edge云應(yīng)用

2010-10-09 16:40:52

2009-12-09 10:48:50

ibmdwLotus

2017-08-23 09:48:18

機(jī)器人安全保護(hù)包裝

2011-08-05 14:02:17

MySQL數(shù)據(jù)庫(kù)異常處理

2020-12-17 17:40:58

可穿戴技術(shù)智能物聯(lián)網(wǎng)

2010-09-03 21:41:39

思科

2009-06-25 14:05:40

Java應(yīng)用技巧

2009-02-25 10:34:57

異常處理體系Python

2010-05-26 10:58:02

SVN管理
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)