033 異常處理

異常處理

異常就是程序運行時發生錯誤的信號(在程序出現錯誤時,則會產生一個異常,若程序沒有處理它,則會拋出該異常,程序的運行也隨之終止python

在python中不一樣的異常能夠用不一樣的類型(python中統一了類與類型,類型即類)去標識,一個異常標識一種錯誤code

1.語法異常

2.邏輯異常

3.異常處理

爲了保證程序的健壯性與容錯性,即在遇到錯誤時程序不會崩潰,咱們須要對異常進行處理it

1.提早預防

若是錯誤發生的條件是可預知的,咱們須要用if進行處理:在錯誤發生以前進行預防io

2.以後預防

若是錯誤發生的條件是不可預知的,則須要用到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.多分支異常與萬能異常異常處理

  • 若是你想要程序不管出現什麼異常,咱們統一丟棄,或者使用同一段代碼邏輯去處理他們那麼只有一個Exception就足夠了。
  • 若是想要對於不一樣的異常咱們須要定製不一樣的處理邏輯,那就須要用到多分支了。

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('不管異常與否,都會執行該模塊,一般是進行清理工做')

4.拋出異常(raise)

try:
    raise TypeError('拋出異常,類型錯誤')
except Exception as e:
    print(e)

5.斷言(assert)

assert 1 == 1

try:
    assert 1 == 2
except Exception as e:
    print(e)
相關文章
相關標籤/搜索