python 基礎---異常處理
阿新 • • 發佈:2018-08-06
萬能 urn 檢測 圖片 NPU png ret spa exc
程序一旦發生錯誤,就從錯誤的位置停下來了,不在繼續執行後面的內容
使用try和except就能處理異常
1 try:
2 被檢測的代碼塊
3 except 異常類型:
4 try中一旦檢測到異常,就執行這個位置的邏輯
try
我們需要處理的代碼
except
- 後面跟一個錯誤類型 當代碼發生錯誤且錯誤類型符合的時候 就會執行except中的代碼
- 支持多分支
Exception
- 萬能的處理機制
- 有了萬能的處理機制仍然需要把能預測到的問題單獨處理
- 單獨處理的所有內容都應該寫在萬能異常之前
else
沒有異常的時候執行else中的代碼
finally
- 不管代碼是否異常,都會執行
- 常用於文件、數據庫等關閉
- finally和return相遇的時候 依然會執行
- 函數裏做異常處理用,不管是否異常去做一些收尾工作
舉例:
1 ret = int(input(‘number:‘))
2 print(ret)
處理1:(except 後面跟一個錯誤類型 當代碼發生錯誤且錯誤類型符合的時候 就會執行except中的代碼)
1 try:
2 ret = int(input(‘number:‘))
3 print(ret)
4 except ValueError:
5 print("請輸入數字")
處理2:(Exception萬能處理,不需要錯誤類型 )
1 try:
2 ret = int(input(‘number:‘))
3 print(ret)
4 except Exception:
5 print("請輸入數字")
處理3:
1 try:
2 ret = int(input(‘number:‘))
3 print(ret)
4 except Exception as error:
5 print(‘你錯了,老鐵‘,error)
處理4:(多分支)
1 s1 = ‘hello‘
2 try:
3 int(s1)
4 except IndexError as e:
5 print(e)
6 except KeyError as e:
7 print(e)
8 except ValueError as e:
9 print(e)
10 except Exception as e:
11 print(e)
處理5:(else和finally)
1 s1 = ‘hello‘
2 try:
3 int(s1)
4 except IndexError as e:
5 print(e)
6 except KeyError as e:
7 print(e)
8 except ValueError as e:
9 print(e)
10 #except Exception as e:
11 # print(e)
12 else:
13 print(‘try內代碼塊沒有異常則執行我‘)
14 finally:
15 print(‘無論異常與否,都會執行該模塊,通常是進行清理工作‘)
python 基礎---異常處理