異常就是程序運行時發生錯誤的信號(在程序出現錯誤時,則會產生一個異常,若程序沒有處理它,則會拋出該異常,程序的運行也隨之終止
python
在python中不一樣的異常能夠用不一樣的類型(python中統一了類與類型,類型即類)去標識,一個異常標識一種錯誤
code
爲了保證程序的健壯性與容錯性,即在遇到錯誤時程序不會崩潰,咱們須要對異常進行處理
it
若是錯誤發生的條件是可預知的,咱們須要用if進行處理:在錯誤發生以前進行預防
io
若是錯誤發生的條件是不可預知的,則須要用到try...except:在錯誤發生以後進行處理
class
#基本語法爲 try: 被檢測的代碼塊 except 異常類型: try中一旦檢測到異常,就執行這個位置的邏輯
1.異常類只能用來處理指定的異常狀況,若是非指定異常則沒法處理。語法
s1 = 'hello' try: int(s1) except IndexError as e: # 未捕獲到異常,程序直接報錯 print(e)
2.多分支程序
s1 = 'hello' try: int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e) invalid literal for int() with base 10: 'hello'
3.萬能異常Exception異常
s1 = 'hello' try: int(s1) except Exception as e: print(e)
4.多分支異常與萬能異常異常處理
5.也能夠在多分支後來一個Exceptionsse
s1 = 'hello' try: int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e) except Exception as e: print(e)
6.異常的最終執行
s1 = 'hello' try: int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e) #except Exception as e: # print(e) else: print('try內代碼塊沒有異常則執行我') finally: print('不管異常與否,都會執行該模塊,一般是進行清理工做')
try: raise TypeError('拋出異常,類型錯誤') except Exception as e: print(e)
assert 1 == 1 try: assert 1 == 2 except Exception as e: print(e)