python自定義異常和異常捕捉

異常捕捉:

1. try: 
2.     XXXXX1
3.     raise Exception(“xxxxx2”) 
4. except (Exception1,Exception2,……): 
5.     xxxx3
6. else:
7.     xxxxx4
8. finally:
9.     xxxxxxx5

1.raise 語句可以自定義報錯信息,如上。

  1. raise后的語句是不會被執(zhí)行了,因?yàn)橐呀?jīng)拋出異常,控制流將會跳到異常捕捉模塊。
  2. except 語句可以一個except后帶多個異常,也可以用多個語句捕捉多個異常,分別做不同處理。
  3. except語句捕捉的異常如果沒有發(fā)生,那么except里的語句塊是不被執(zhí)行的。而是執(zhí)行else里的語句
  4. 在上面語句中try/except/else/finally所出現(xiàn)的順序必須是try–>except X–>except–>else–>finally,即所有的except必須在else和finally之前,else(如果有的話)必須在finally之前,而except X必須在except之前。否則會出現(xiàn)語法錯誤。
    6.else和finally都是可選的.
    7.在上面的完整語句中,else語句的存在必須以except X或者except語句為前提,如果在沒有except語句的try block中使用else語句會引發(fā)語法錯誤。

異常參數(shù)輸出:

1. try:
2.     testRaise()
3. except PreconditionsException as e: #python3的寫法,必須用as
4.     print (e)

自定義異常,只需自定義異常類繼承父類Exception。在自定義異常類中,重寫父類init方法。

1. class DatabaseException(Exception):
2.     def __init__(self,err='數(shù)據(jù)庫錯誤'):
3.         Exception.__init__(self,err)
4. 
5. class PreconditionsException(DatabaseException):
6.     def __init__(self,err='PreconditionsErr'):
7.         DatabaseException.__init__(self,err)
8. 
9. def testRaise():
10.    raise PreconditionsException()
11. 
12. try:
13.     testRaise()
14. except PreconditionsException as e:
15.     print (e)

注意:PreconditonsException又是DatabaseException的子類。
所以如果,raise PreconditionException的話,用兩個異常類都可以捕捉。
但是, 如果是raise DatabaseException, 用PreconditonsException是捕捉不到的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、簡介 Python最強(qiáng)大的結(jié)構(gòu)之一就是它的異常處理能力,所有的標(biāo)準(zhǔn)異常都使用類來實(shí)現(xiàn),都是基類Exceptio...
    隨風(fēng)化作雨閱讀 3,147評論 0 1
  • Python異常處理 異常概念: 異常:就是不正常的情況,程序開發(fā)過程中錯誤和BUG都是補(bǔ)充正常的情況 異常發(fā)生的...
    youngkun閱讀 983評論 0 4
  • 1.什么是異常? 異常即是一個事件,該事件會在程序執(zhí)行過程中發(fā)生,影響了程序的正常執(zhí)行。一般情況下,Python無...
    歲月神偷_bde8閱讀 394評論 0 0
  • 女兒三歲了,非常喜歡拿著畫筆在紙上涂涂畫畫,作為老爸,覺得蠻有必要一起畫點(diǎn)什么,就有了今晚的圖畫
    愛寫詩的金先生閱讀 634評論 5 10
  • 姓名:母光艷 公司:寧波貞觀電器 第235期,利他二組 【日精進(jìn)打卡第170天】 【知-學(xué)習(xí)】 誦讀《六項(xiàng)精進(jìn)》大...
    母光焱閱讀 181評論 0 0

友情鏈接更多精彩內(nèi)容