日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

淺談python拋出異常、自定義異常, 傳遞異常

系統(tǒng) 2077 0

一. 拋出異常

Python用異常對(duì)象(exception object)表示異常情況,遇到錯(cuò)誤后,會(huì)引發(fā)異常。如果異常對(duì)象并未被處理或捕捉,程序就會(huì)用所謂的回溯(Traceback,一種錯(cuò)誤信息)終止執(zhí)行。

raise 語句

Python中的raise 關(guān)鍵字用于引發(fā)一個(gè)異常,基本上和C#和Java中的throw關(guān)鍵字相同,如下所示:

            
import traceback

def throw_error():
  raise Exception("拋出一個(gè)異常")#異常被拋出,print函數(shù)無法執(zhí)行
  print("飛天豬")
  
throw_error()


          

#運(yùn)行結(jié)果:

            
'''Traceback (most recent call last):
 File "C:\Users\Administrator\Desktop\systray.py", line 7, in 
            
              
  throw_error()
 File "C:\Users\Administrator\Desktop\systray.py", line 4, in throw_error
  raise Exception("拋出一個(gè)異常")#異常被拋出,print函數(shù)無法執(zhí)行
Exception: 拋出一個(gè)異常'''

            
          

raise關(guān)鍵字后面是拋出是一個(gè)通用的異常類型(Exception),一般來說拋出的異常越詳細(xì)越好

二.傳遞異常:

捕捉到了異常,但是又想重新引發(fā)它(傳遞異常),可以使用不帶參數(shù)的raise語句即可:

            
class MufCalc(object):
  m = False
  def calc(self,exp):
    try:
      return eval(exp)
    except ZeroDivisionError:
      if self.m:
        print("cool")
      else:
        raise

app = MufCalc()
app.calc(2/0)


          

三.自定義異常類型

Python中也可以自定義自己的特殊類型的異常,只需要要從Exception類繼承(直接或間接)即可:

            
class MyError(Exception):
  pass

          


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 方山县| 黑河市| 奈曼旗| 精河县| 阳城县| 通河县| 凤山县| 图木舒克市| 阜宁县| 井冈山市| 新巴尔虎右旗| 黔东| 龙里县| 宜昌市| 抚远县| 贡嘎县| 溧阳市| 正宁县| 九江县| 务川| 科尔| 文成县| 珠海市| 山阳县| 贵溪市| 江山市| 电白县| 威海市| 商南县| 新丰县| 屏山县| 洛隆县| 兰州市| 陆良县| 北海市| 曲阜市| 高邮市| 龙游县| 娄底市| 旌德县| 镇江市|