異常與錯誤
阿新 • • 發佈:2018-08-23
網絡 strong 進行 機制 滿足 traceback 打印錯誤 projects img 一.異常和錯誤
什麽是錯誤
Traceback (most recent call last):
File "G:/utilities/Python/Python36/projects36/day20/4.異常基礎處理.py", line 7, in <module>
main()
File "G:/utilities/Python/Python36/projects36/day20/4.異常基礎處理.py", line 6, in main
func2()
File "G:/utilities/Python/Python36/projects36/day20/4.異常基礎處理.py", line 4, in func2
func1()
File "G:/utilities/Python/Python36/projects36/day20/4.異常基礎處理.py", line 2, in func1 # 這一行是問題的源頭
name
NameError: name ‘name‘ is not defined # 如果無法解決, 就將該行信息粘貼到百度去處理
二.異常處理
1.什麽是異常
1. 報錯的代碼信息會從上向下進行查找, 只要找到和報錯類型相符的分支, 就停止查找, 執行這個分支中的代碼, 然後直接退出分支
2. 如果找不到能處理和報錯類型相同的分支, 會一直往下走, 最後還是沒有找到就會報錯
多分支合並
try:
被檢測的代碼塊
except (異常類型1, 異常類型2, 異常類型3, ...):
try中一旦檢測到此處的異常類型, 就執行這裏的邏輯
萬能異常
# 寫法一:
try:
被檢測的代碼塊
except Exception:
try中出現的所有異常, 都會執行這裏的邏輯
# 寫法二:
try:
被檢測的代碼塊
except:
try中出現的所有異常, 都會執行這裏的邏輯
註:
不會打印錯誤的信息
as語法
- 語法錯誤
- 無法通過python解釋器的語法檢測
- 在寫代碼的時候應該規避掉
- 邏輯錯誤
- 程序運行時發生錯誤的信號
- 當要處理的內容不確定的時候
- 有用戶參與
- 有外接數據接入: 從文件中讀 , 從網絡上獲取等
- 程序運行時發生錯誤的信號
- 異常之後的代碼就不執行了
- python解釋器檢測到錯誤, 觸發異常
- 程序員編寫特定的代碼, 專門用來捕捉這個異常
- 如果捕捉成功則進入另外一個處理分支, 執行你為其定制的邏輯, 使程序不會崩潰, 這就是異常處理
- 常和萬能異常搭配使用
- 其他單分支或多分支等也是都可以使用的
- 這個是給其他開發者用的, 而不是給用戶拋的
- 例如:我們使用別人開發的框架, 在使用時可以給我們主動拋出異常讓我們處理, 而我們開發完畢的程序, 是不能拋出異常給用戶看的, 這樣是很不友好的
異常與錯誤