乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python中的內(nèi)置異常你知道那些,歡迎留言評(píng)論~~~

       軟件測(cè)試test 2020-07-03

      Python中的所有實(shí)例必須是從BaseException派生的類的實(shí)例通過(guò)子類不相關(guān)的兩個(gè)異常類,即使它們具有相同的名稱,也永遠(yuǎn)不會(huì)等效。內(nèi)置異常可以由解釋器或內(nèi)置函數(shù)生成。

      錯(cuò)誤發(fā)生時(shí),Python中會(huì)引發(fā)一些內(nèi)置的異常。可以使用local()內(nèi)置函數(shù)來(lái)查看這些內(nèi)置異常,如下所示:

      >>> locals()['__ builtins__']

      這將返回內(nèi)置異常,函數(shù)和屬性的字典。

      基類

      以下異常通常用作其他異常的基類。

       1、exception BaseException
      這是所有內(nèi)置異常的基類。它并不意味著被用戶定義的類直接繼承。對(duì)于用戶定義的類,使用Exception。此類負(fù)責(zé)使用傳遞的參數(shù)使用str()創(chuàng)建異常的字符串表示形式。如果沒有參數(shù),則返回一個(gè)空字符串。

      • args: args是提供給異常構(gòu)造函數(shù)的參數(shù)的元組。

      • with_traceback(tb):此方法通常用于異常處理中。此方法將tb設(shè)置為該異常的新回溯并返回異常對(duì)象。

        代碼:

      try: ...except SomeException: tb = sys.exc_info()[2] raise OtherException(...).with_traceback(tb)

       2、exception Exception
      這是所有內(nèi)置的非系統(tǒng)退出異常的基類。所有用戶定義的異常也應(yīng)從此類派生。

      3、exception ArithmeticError
      此類是針對(duì)各種算術(shù)錯(cuò)誤(例如:)引發(fā)的那些內(nèi)置異常的基類:

        • OverflowError

        • ZeroDivisionError

        • FloatingPointError

      范例:

      try: a = 10/0 print a except ArithmeticError: print "此語(yǔ)句引發(fā)算術(shù)異常." else: print "Success."

      輸出:

      此語(yǔ)句引發(fā)算術(shù)異常。

      4、exception BufferError
      當(dāng)無(wú)法執(zhí)行與緩沖區(qū)相關(guān)的操作時(shí),將引發(fā)此異常。

      5、exception LookupError
      這是在映射或序列上使用的鍵或索引無(wú)效或找不到時(shí)引發(fā)的那些異常的基類。引發(fā)的異常是:

        • KeyError

        • IndexError

      范例:

      try: a = [1, 2, 3] print a[3] except LookupError: print "索引越界錯(cuò)誤."else: print "Success"

      輸出:

      索引越界錯(cuò)誤.

      具體例外

      以下異常是通常引發(fā)的異常。

      異常AssertionError
      當(dāng)斷言語(yǔ)句失敗時(shí),引發(fā)AssertionError。

      范例:

      assert False,“斷言失敗”輸出:Traceback (most recent call last): File "exceptions_AssertionError.py", line 12, in assert False, 'The assertion failed'AssertionError: The assertion failed

      exception AttributeError
      當(dāng)屬性引用或分配失?。ɡ?,引用了不存在的屬性)時(shí),將引發(fā)AttributeError。

      范例:

      class Attributes(object): pass object = Attributes() print object.attribute

      輸出:

      Traceback (most recent call last): File "d912bae549a2b42953bc62da114ae7a7.py", line 5, in print object.attributeAttributeError: 'Attributes' object has no attribute 'attribute'

      exception EOFError
      當(dāng)類似input()的內(nèi)置函數(shù)遇到文件結(jié)尾條件(EOF)而沒有讀取任何數(shù)據(jù)時(shí),引發(fā) EOFError。諸如readline()之類的文件方法在到達(dá)EOF時(shí)會(huì)返回一個(gè)空字符串。

      范例:

      while True: data = raw_input('輸入名稱: ') print 'Hello ', data

      輸出:

      輸入名稱:Hello 軟件測(cè)試test 輸入名稱:Traceback(最近一次通話): 文件“ exceptions_EOFError.py”,第13行, 數(shù)據(jù)= raw_input('輸入名稱:'EOFError:讀取行時(shí)出現(xiàn)EOF

      異常FloatingPointError
      當(dāng)浮點(diǎn)操作失敗時(shí),引發(fā)FloatingPointError。總是定義此異常,但是只有在使用–with-fpectl選項(xiàng)配置Python或在pyconfig.h文件中定義了WANT_SIGFPE_HANDLER符號(hào)時(shí),才會(huì)引發(fā)此異常。

      范例:

      import math print math.exp(1000)

      輸出:

      Traceback (most recent call last): File "", line 1, in FloatingPointError: in math_1

      異常GeneratorExit
      該異常直接繼承自BaseException,而不是Exception,因?yàn)閺募夹g(shù)上講,它不是錯(cuò)誤。關(guān)閉生成器或協(xié)程時(shí),將引發(fā)GeneratorExit異常。

      范例:

      def my_generator(): try: for i in range(5): print 'Yielding', i yield i except GeneratorExit: print 'Exiting early' g = my_generator() print g.next() g.close()

      輸出:

      Yielding 00Exiting early

      異常ImportError
      當(dāng)import語(yǔ)句無(wú)法加載模塊或from…import中的“ from list”具有無(wú)法找到的名稱時(shí),引發(fā)ImportError。

        范例:

      import module_does_not_exist
      輸出:Traceback (most recent call last): File "exceptions_ImportError_nomodule.py", line 12, in import module_does_not_existImportError: No module named module_does_not_exist

        范例:

      from exceptions import Userexception 

        輸出:

      Traceback (most recent call last): File "exceptions_ImportError_missingname.py", line 12, in from exceptions import UserexceptionImportError: cannot import name Userexception

      exception ModuleNotFoundError
      這是ImportError的子類,當(dāng)找不到模塊時(shí),import會(huì)引發(fā)該子類。在sys.modules中找不到None時(shí),也會(huì)引發(fā)此錯(cuò)誤。

      exception IndexError
      當(dāng)引用的序列超出范圍時(shí),引發(fā)IndexError。

      范例:

      array = [ 0, 1, 2 ] print array[3]

      輸出:

      Traceback (most recent call last): File "exceptions_IndexError.py", line 13, in print array[3]IndexError: list index out of range

      exception KeyError
      當(dāng)在一組現(xiàn)有鍵中找不到映射鍵時(shí),引發(fā)KeyError。

      范例:

      array = { 'a':1, 'b':2 } print array['c']

      輸出:

      Traceback (most recent call last): File "exceptions_KeyError.py", line 13, in print array['c']KeyError: 'c'

      exception KeyboardInterrupt
      當(dāng)用戶按下中斷鍵(例如Control-C或Delete)時(shí),將引發(fā)此錯(cuò)誤。

      范例:

      try: print '按Return或Ctrl-C:', ignored = raw_input() except Exception, err: print '捕獲到異常:', err except KeyboardInterrupt, err: print '捕捉到鍵盤中斷'else:     print '沒有錯(cuò)誤'

      輸出:

      Return鍵或Ctrl-C鍵:^ 捕捉到鍵盤中斷

      exception MemoryError
      當(dāng)操作內(nèi)存不足時(shí),將引發(fā)此錯(cuò)誤。

      范例:

      def fact(a): factors = [] for i in range(1, a+1): if a%i == 0: factors.append(i) return factors num = 600851475143print fact(num)

      輸出:

      Traceback (most recent call last): File "4af5c316c749aff128df20714536b8f3.py", line 9, in print fact(num) File "4af5c316c749aff128df20714536b8f3.py", line 3, in fact for i in range(1, a+1):MemoryError

      異常NameError
      如果找不到本地或全局名稱,則會(huì)引發(fā)此錯(cuò)誤。例如,不合格的變量名。

      范例:

      def func(): print ans func()

      輸出:

      Traceback (most recent call last): File "cfba0a5196b05397e0a23b1b5b8c7e19.py", line 4, in func() File "cfba0a5196b05397e0a23b1b5b8c7e19.py", line 2, in func print ansNameError: global name 'ans' is not defined

      異常NotImplementedError
      此異常派生自RuntimeError。當(dāng)派生類覆蓋該方法時(shí),用戶定義的類中的抽象方法應(yīng)引發(fā)此異常。

      范例:

      class BaseClass(object): """定義接口""" def __init__(self): super(BaseClass, self).__init__() def do_something(self): """接口,未實(shí)現(xiàn)""" raise NotImplementedError(self.__class__.__name__ + '.do_something') class SubClass(BaseClass): """實(shí)現(xiàn)接口""" def do_something(self): """真的做了些什么""" print self.__class__.__name__ + ' doing something!' SubClass().do_something() BaseClass().do_something()

      輸出:

      Traceback (most recent call last): File "b32fc445850cbc23cd2f081ba1c1d60b.py", line 16, in BaseClass().do_something() File "b32fc445850cbc23cd2f081ba1c1d60b.py", line 7, in do_something raise NotImplementedError(self.__class__.__name__ + '.do_something')NotImplementedError: BaseClass.do_something

      異常OSError([arg])
      當(dāng)系統(tǒng)函數(shù)返回與系統(tǒng)相關(guān)的錯(cuò)誤,包括I / O故障(例如“找不到文件”或“磁盤已滿”錯(cuò)誤)時(shí),將引發(fā)OSError異常。

      范例:

      Traceback (most recent call last): File "442eccd7535a2704adbe372cb731fc0f.py", line 4, in print i, os.ttyname(i)OSError: [Errno 25] Inappropriate ioctl for device

      exception OverflowError
      當(dāng)算術(shù)運(yùn)算的結(jié)果超出范圍時(shí),將引發(fā)OverflowError。整數(shù)引發(fā)MemoryError而不是OverflowError。對(duì)于超出所需范圍的整數(shù),有時(shí)會(huì)引發(fā)OverflowError。由于缺乏C語(yǔ)言中浮點(diǎn)異常處理的標(biāo)準(zhǔn)化,因此未檢查浮點(diǎn)操作。

      范例:

      import sys print '正則整數(shù): (maxint=%s)' % sys.maxint try: i = sys.maxint * 3 print '沒有溢出 ', type(i), 'i =', i except OverflowError, err: print '溢出于 ', i, err printprint '長(zhǎng)整數(shù):'for i in range(0, 100, 10): print '%2d' % i, 2L ** i printprint '浮點(diǎn)值:'try: f = 2.0**i for i in range(100): print i, f f = f ** 2except OverflowError, err: print '之后溢出 ', f, err

      輸出:

      定期整數(shù):(MAXINT = 9223372036854775807)沒有溢出,對(duì)于i = 27670116110564327421
      長(zhǎng)整數(shù): 0 1 10 1024 20 1048576 30 1073741824 40 1099511627776 50 1125899906842624 60 1152921504606846976 70個(gè)1180591620717411303424 80 1208925819614629174706176 90 1237940039285380274899124224
      浮點(diǎn)值:0 1.23794003929e + 27 1 + 1.53249554087e 54 2 2.34854258277e + 108 3 5.5156522631e + 216 在5.5156522631e + 216之后溢出(34,'數(shù)值結(jié)果超出范圍')

      異常RecursionError
      RecursionError源自RuntimeError。當(dāng)解釋器檢測(cè)到超過(guò)最大遞歸深度時(shí),將引發(fā)此異常。

      異常ReferenceError
      當(dāng)在垃圾回收之后使用弱引用代理訪問(wèn)引用對(duì)象的屬性時(shí),引發(fā)ReferenceError。

      范例:

      import gc import weakref class Foo(object): def __init__(self, name): self.name = name def __del__(self): print '(Deleting %s)' % self obj = Foo('obj') p = weakref.proxy(obj) print '之前:', p.name obj = Noneprint '之后:', p.name 

      輸出:

      BEFORE: obj(Deleting )AFTER:
      Traceback (most recent call last): File "49d0c29d8fe607b862c02f4e1cb6c756.py", line 17, in print 'AFTER:', p.nameReferenceError: weakly-referenced object no longer exists

      exception RuntimeError
      當(dāng)沒有其他異常適用時(shí),將引發(fā)RuntimeError。它返回一個(gè)字符串,指示確切的錯(cuò)誤。

      異常StopIteration
      內(nèi)置函數(shù)next()和迭代器的__next __()方法引發(fā)StopIteration錯(cuò)誤,以表示所有項(xiàng)目都是由迭代器產(chǎn)生的。

      范例:

      Arr = [3, 1, 2] i=iter(Arr) print i print i.next() print i.next() print i.next() print i.next()

      輸出:

      312
      Traceback (most recent call last): File "2136fa9a620e14f8436bb60d5395cc5b.py", line 8, in print i.next()StopIteration

      異常SyntaxError
      當(dāng)解析器遇到語(yǔ)法錯(cuò)誤時(shí),引發(fā)SyntaxError。在import語(yǔ)句中或在調(diào)用內(nèi)置函數(shù)exec()或eval()時(shí),或在讀取初始腳本或標(biāo)準(zhǔn)輸入時(shí),可能會(huì)發(fā)生語(yǔ)法錯(cuò)誤。

      范例:

      try: print eval('軟件測(cè)試test') except SyntaxError, err: print 'Syntax error %s (%s-%s): %s' % \ (err.filename, err.lineno, err.offset, err.text) print err

      輸出:

      Syntax error (1-9): 軟件測(cè)試testinvalid syntax (, line 1)

      異常SystemError
      當(dāng)解釋器發(fā)現(xiàn)內(nèi)部錯(cuò)誤時(shí),將引發(fā)SystemError。關(guān)聯(lián)的值是一個(gè)字符串,指出出了什么問(wèn)題。

      exception SystemExit
      調(diào)用sys.exit()函數(shù)時(shí),將引發(fā)SystemExit。調(diào)用sys.exit()會(huì)轉(zhuǎn)換為異常,以執(zhí)行清理處理程序(try語(yǔ)句的最終子句)并調(diào)試腳本,而不會(huì)冒失去控制權(quán)的風(fēng)險(xiǎn)。

      異常TypeError
      當(dāng)將操作或函數(shù)應(yīng)用于不適當(dāng)類型的對(duì)象時(shí),引發(fā) TypeError。此異常返回一個(gè)字符串,其中提供有關(guān)類型不匹配的詳細(xì)信息。

      范例:

      arr = ('tuple', ) + 'string'print arr

      輸出:

      Traceback (most recent call last): File "30238c120c0868eba7e13a06c0b1b1e4.py", line 1, in arr = ('tuple', ) + 'string'TypeError: can only concatenate tuple (not "str"to tuple

      exception UnboundLocalError
      UnboundLocalError是NameError的子類,當(dāng)在函數(shù)或方法中對(duì)局部變量進(jìn)行引用但未為該變量賦值時(shí)會(huì)引發(fā)該異常。

      范例:


      def global_name_error(): print 未知的全局名 def unbound_local(): local_val = local_val + 1    print 本地名稱 try: global_name_error() except NameError, err: print '全局名稱錯(cuò)誤:', err try: unbound_local() except UnboundLocalError, err: print '本地名稱錯(cuò)誤:', err

      輸出:

      Global name error: global name '全局名稱錯(cuò)誤' is not definedLocal name error: local variable '本地名稱' referenced before assignment

      異常UnicodeError
      此異常是ValueError的子類。當(dāng)發(fā)生與Unicode相關(guān)的編碼或解碼錯(cuò)誤時(shí),會(huì)引發(fā)UnicodeError。

      異常ValueError
      當(dāng)內(nèi)置操作或函數(shù)接收到具有正確類型但無(wú)效值的參數(shù)時(shí),引發(fā)ValueError。

      范例:

      print int('a'

      輸出:

      Traceback (most recent call last): File "44f00efda935715a3c5468d899080381.py", line 1, in print int('a')ValueError: invalid literal for int() with base 10: 'a'

      exception ZeroDivisionError
      當(dāng)除法或模運(yùn)算的第二個(gè)參數(shù)為零時(shí),將引發(fā)ZeroDivisionError。該異常返回一個(gè)字符串,指示操作數(shù)和操作的類型。

      范例:

      print 1/0

      輸出:

      Traceback (most recent call last): File "c31d9626b41e53d170a78eac7d98cb85.py", line 1, in print 1/0ZeroDivisionError: integer division or modulo by zero

      使用Python讀取,寫入和解析JSON
      建立數(shù)據(jù)驅(qū)動(dòng),關(guān)鍵字驅(qū)動(dòng)和混合Selenium框架這些你了解嗎
      您需要了解的有關(guān)Selenium等待方法
      如何在Selenium WebDriver中查找元素?(二)
      如何在Selenium WebDriver中查找元素?(一)


        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多