新聞中心
異常捕捉:

成都創(chuàng)新互聯(lián)公司10多年成都定制網(wǎng)頁(yè)設(shè)計(jì)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都定制網(wǎng)頁(yè)設(shè)計(jì)及推廣,對(duì)成都展覽展示等多個(gè)行業(yè)擁有豐富的網(wǎng)站運(yùn)維經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
try: XXXXX1 raise Exception(“xxxxx2”) except (Exception1,Exception2,……): xxxx3 else: xxxxx4 finally: xxxxxxx5
1.raise 語(yǔ)句可以自定義報(bào)錯(cuò)信息,如上。
2. raise后的語(yǔ)句是不會(huì)被執(zhí)行了,因?yàn)橐呀?jīng)拋出異常,控制流將會(huì)跳到異常捕捉模塊。
3. except 語(yǔ)句可以一個(gè)except后帶多個(gè)異常,也可以用多個(gè)語(yǔ)句捕捉多個(gè)異常,分別做不同處理。
4. except語(yǔ)句捕捉的異常如果沒(méi)有發(fā)生,那么except里的語(yǔ)句塊是不被執(zhí)行的。而是執(zhí)行else里的語(yǔ)句
5. 在上面語(yǔ)句中try/except/else/finally所出現(xiàn)的順序必須是try–>except X–>except–>else–>finally,即所有的except必須在else和finally之前,else(如果有的話)必須在finally之前,而except X必須在except之前。否則會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。
6.else和finally都是可選的.
7.在上面的完整語(yǔ)句中,else語(yǔ)句的存在必須以except X或者except語(yǔ)句為前提,如果在沒(méi)有except語(yǔ)句的try block中使用else語(yǔ)句會(huì)引發(fā)語(yǔ)法錯(cuò)誤。
異常參數(shù)輸出:
try: testRaise() except PreconditionsException as e: #python3的寫法,必須用as print (e)
自定義異常,只需自定義異常類繼承父類Exception。在自定義異常類中,重寫父類init方法。
class DatabaseException(Exception): def __init__(self,err='數(shù)據(jù)庫(kù)錯(cuò)誤'): Exception.__init__(self,err) class PreconditionsException(DatabaseException): def __init__(self,err='PreconditionsErr'): DatabaseException.__init__(self,err) def testRaise(): raise PreconditionsException() try: testRaise() except PreconditionsException as e: print (e)
注意:PreconditonsException又是DatabaseException的子類。
所以如果,raise PreconditionException的話,用兩個(gè)異常類都可以捕捉。
但是, 如果是raise DatabaseException, 用PreconditonsException是捕捉不到的。
更多學(xué)習(xí)內(nèi)容,請(qǐng)點(diǎn)擊python學(xué)習(xí)網(wǎng)。
新聞標(biāo)題:創(chuàng)新互聯(lián)Python教程:python如何自定義捕獲錯(cuò)誤
分享網(wǎng)址:http://m.5511xx.com/article/cdhihgi.html


咨詢
建站咨詢
