Python零基礎學習筆記(二十八)——異常處理

我是王佳俊發表於2019-01-25
try:
    print(enume)
    print(3 / 0)
except ZeroDivisionError as e:
    print("除數為零!")
except NameError as e:
    print("名稱錯了!")

#使用except而不使用任何錯誤型別
try:
    print(" ",de)
except:
    print("Error!")

#使用except顯示多種異常
try:
    pass
except(NameError,ZeroDivisionError):
    print("出現了NameError或ZeroDivisionError"

```    
特殊
#1、錯誤其實是class(類),所有的錯誤都繼承自BaseException,所以在捕獲
#2、跨越多層呼叫
#需求:當程式遇到問題時不讓程式結束,而越過錯誤繼續向下執行
```

```
try……except……else
格式:
try:
    語句t
except 錯誤碼 as e:
    語句1
except 錯誤碼 as e:
    語句2
except 錯誤碼 as e:
    語句3
     ...
except 錯誤碼 as e:
    語句n
else:
    語句e

注意:else可有可無

作用:檢測try語句塊中的錯誤,從而讓except語句捕獲錯誤資訊並處理

邏輯:當程式執行到try-except-else語句時
1、當try【語句t】執行出現錯誤,會匹配第一個錯誤碼,如果匹配上就執行第一個語句
2、當try【語句t】執行出現錯誤,沒有匹配到任何的錯誤碼,錯誤將會被提交到上一層的
   try語句,或者到程式的最上層
3、當try【語句t】執行沒有出現錯誤,執行else下的【語句e】(有else的情況下)
```

def func1(num):
    print(1 / num)
def func2(num):
    func1(num)
def main():
    func2(0)
try:
    main()
except ZeroDivisionError as e:
    print("QQQQQ")

```
try……except……else
格式:
try:
    語句t
except 錯誤碼 as e:
    語句1
except 錯誤碼 as e:
    語句2
except 錯誤碼 as e:
    語句3
     ...
except 錯誤碼 as e:
    語句n
finally:
    語句f

注意:else可有可無

作用:語句t無論是否有錯誤都將執行最後的語句f
```

try:
    print(1/1)
finally:
    print("這是必須執行的語句!")

print("sda")

try:
    print(1/0)
finally:
    print("這是必須執行的語句!")

print("sda")


相關文章