Python中的Exceptions是所有異常的基類,內置的異常類都放在了exceptions模塊中,通過dir()函數可以看到這些內置的類
通過raise 語句觸發異常,如
>>>raise Exception
>>>import exceptions
>>>dir(exceptions)['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BufferError', 'BytesWarning', 'DePRecationWarning', 'EOFError', 'EnvironmentError', 'Exception', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'ZeroDivisionError', '__doc__', '__name__', '__package__']
當代碼遇到錯誤的時候,會逐層向上傳播,如果沒有捕捉異常的機制,錯誤會傳遞到全局變量的位置,導致程序報錯終止.
在python中可以通過 try/except來捕捉異常,except 可以跟上內置的異常類,或者自定義的異常類

1 import exceptions2 try:3 print a4 except NameError:5 print '名字未定義'

import exceptionstry: print aexcept NameError,e: print e
注意:在python 3.0中 except語句會寫成 execpt NameError as e :
其他語句:
else語句: 只有在沒有異常的情況下,else才會執行.
finally語句: 在異常處理語句中,都會執行.
新聞熱點
疑難解答