亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python異常學(xué)習(xí)筆記

系統(tǒng) 1764 0

異常(exceptions)是Python中一種非常重要的類型,它和語(yǔ)法錯(cuò)誤不同,是在程序運(yùn)行期間引發(fā)的錯(cuò)誤。Python中內(nèi)置了很多異常,如IOError,NameError,KeyboardInterrupt等,更多的異常可以點(diǎn)擊這里。

異常的意義在于提供一種更加優(yōu)雅的運(yùn)行方式,例如用Python編寫(xiě)一個(gè)計(jì)算器,如果用戶輸入不能計(jì)算的對(duì)象,則可以拋出異常,并進(jìn)行處理, 如下:

            
while True:
  try:
    x= int(input('Please In enter A number:'))
    print "Your Input is %s"%x
    break
  except Exception,e:
    print e


          

Python是一門(mén)面向?qū)ο蟮恼Z(yǔ)言,異常本身也是對(duì)象, 用dir(Exception)查看Exception類的屬性,如下:[‘__class__', ‘__delattr__', ‘__dict__', ‘__doc__', ‘__format__', ‘__getattribute__', ‘__getitem__', ‘__getslice__', ‘__hash__', ‘__init__', ‘__new__', ‘__reduce__', ‘__reduce_ex__', ‘__repr__', ‘__setattr__', ‘__setstate__', ‘__sizeof__','__str__', ‘__subclasshook__', ‘__unicode__', ‘a(chǎn)rgs', ‘message'], 除開(kāi)args和message外,其余的均為其內(nèi)部屬性, 其中args是傳遞給異常類的構(gòu)造函數(shù)的一個(gè)類型為元祖的參數(shù), 一些內(nèi)置函數(shù),如IOError需要它接收多個(gè)參數(shù),其它的則直接是直接傳遞一個(gè)錯(cuò)誤提示字符串。

Python的異常可以通過(guò)try語(yǔ)句來(lái)檢查,任何在try語(yǔ)句塊里的代碼都會(huì)被監(jiān)測(cè),檢查有無(wú)異常產(chǎn)生,except會(huì)根據(jù)輸入檢查異常的類型,并執(zhí)行except內(nèi)的代碼。那么,這里就不禁要問(wèn)問(wèn),except后面的兩個(gè)參數(shù)到底是什么?如果第一個(gè)是錯(cuò)誤的類型,那么第二參數(shù)呢?對(duì)其進(jìn)行檢測(cè),發(fā)現(xiàn)它是屬于Exception的實(shí)例,也就是說(shuō),它是由異常類產(chǎn)生的一個(gè)具體的異常對(duì)象。
那么,用戶如果自定義一個(gè)異常呢?Python中規(guī)定,所有異常必須直接或者間接的繼承自Exception類,如下,自定義的異常:

            
#!/usr/bin/env python
class MyError(Exception):
  def __init__(self,*args):
    self.value=args[0]
  def __str__(self):
    return repr(self.value)
def showname(*args):
  if args:
    print args
  else:
    raise MyError('Error: need 1 arguments at last, 0 Input')


          

把這個(gè)文件保存為showname.py,其它模塊就可以引入調(diào)用showname函數(shù),并對(duì)它執(zhí)行的結(jié)果進(jìn)行檢測(cè):

            
#!/usr/bin/env python
import showname
try:
  showname.showname()
except showname.MyError,e:
  print e


          

值得注意的幾點(diǎn)是:1, python中用raise拋出異常; 2, 由于所有異常都是繼承自Exception,所以,當(dāng)不確定異常類型的時(shí)候,可以在except后面直接接Exception來(lái)捕獲所有異常;3,由于異常的繼承關(guān)系,異常內(nèi)的所有屬性都是可以被重定義的,也可以在自定義的異常上增加屬性。


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

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

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

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

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: www日韩中文字幕在线看 | 真正全免费视频a毛片 | 日本一区二区三区中文字幕 | 五月婷婷综合色 | 真人实干一级毛片aa免费 | 久久香蕉国产精品一区二区三 | 国产精品久久国产精麻豆99网站 | 最新亚洲精品国自产在线观看 | 四虎在线影视在线影库 | 国内偷自视频区视频综合 | 婷婷色九月综合激情丁香 | 欧美视频一区二区 | 亚洲精品国产综合一线久久 | 天天操夜夜爽 | 久久精品国产线看观看亚洲 | 91不卡 | 在线欧美精品一区二区三区 | 一 级 黄 色 片生活片 | 亚洲高清一区二区三区久久 | 婷婷在线观看视频 | 九九在线精品视频播放 | 午夜宅男在线观看 | 国产色综合网 | 天天干天天碰 | 狠狠色噜噜狠狠狠狠97老肥女 | 这里只有精品视频在线观看 | 日本欧美一区二区三区 | 成人国产一区 | 午夜国产精品色福利视频 | 日韩一级特黄毛片在线看 | 色婷婷色综合激情国产日韩 | 日本一区二区三区在线 观看网站 | 人人做人人爽久久久精品 | 八戒久久精品一区二区三区 | 国产亚洲新品一区二区 | 99视频全部免费精品全部四虎 | 青青国产成人久久91网 | 操她视频网站 | 欧美一级艳片爽快片 | 国产伦码精品一区二区三区 | 婷婷sese|