Python入門進階篇 No.1 —— 異常本質_除錯核心理念
阿新 • • 發佈:2021-01-18
技術標籤:# 進階python程式語言經驗分享程式人生windows
Python入門進階篇 No.1 —— 異常本質_除錯核心理念
文章目錄
後世篇:try_except基本結構
基礎篇:小白不看都能懂 —— Python之真功夫系列(全章)
一、異常機制本質
- 異常指程式執行過程中出現的非正常現象,例如使用者輸入錯誤、除數為零、需要處理的檔案不存在、陣列下標越界等。
- 所謂異常處理,就是指程式在出現問題時依然可以正確的執行剩餘的程式,而不會因為異常而終止程式執行。
- python 中,引進了很多用來描述和處理異常的類,稱為異常類。異常類定義中包含了該類異常的資訊和對異常進行處理的方法。下面較為完整的展示了python 中內建異常類的繼承層次:
- 我們處理一下,遇到的第一個異常:
# 測試簡單的0不能做除數出現的異常
a = 6 / 0
-----------------------
Traceback (most recent call last):
File "C:/jetbrains-agent/部落格/基礎篇/基礎篇01.py", line 3, in <module>
a = 6 / 0
ZeroDivisionError: division by zero
二、除錯核心理念
- python 中一切都是物件,異常也採用物件的方式來處理。處理過程:
1.丟擲異常:在執行一個方法時,如果發生異常,則這個方法生成代表該異常的一個物件,停止當前執行路徑,並把異常物件提交給直譯器。
2.捕獲異常:直譯器得到該異常後,尋找相應的程式碼來處理該異常。
三、異常解決的關鍵:定位
- 當發生異常時,直譯器會報相關的錯誤資訊,並會在控制檯打印出相關錯誤資訊。我們只需按照從上到下的順序即可追溯(Trackback)錯誤發生的過程,最終定位引起錯誤的那一行程式碼。
# 追溯異常發生的過程
def a():
print('run in a() start!' )
num = 1 / 0
print('run in a() end!')
def b():
print('run in b() start!')
a()
print('run in b() end!')
def c():
print('run in c() start!')
b()
print('run in c() end!')
print('step1')
c()
print('step2')
------------------------
Traceback (most recent call last):
File "C:/jetbrains-agent/部落格/基礎篇/基礎篇01.py", line 22, in <module>
c()
File "C:/jetbrains-agent/部落格/基礎篇/基礎篇01.py", line 17, in c
b()
File "C:/jetbrains-agent/部落格/基礎篇/基礎篇01.py", line 11, in b
a()
File "C:/jetbrains-agent/部落格/基礎篇/基礎篇01.py", line 5, in a
num = 1 / 0
ZeroDivisionError: division by zero
step1
run in c() start!
run in b() start!
run in a() start!
總結
以上幫各位總結好了,收藏,關注即可查收。
後世篇:try_except基本結構
基礎篇:小白不看都能懂 —— Python之真功夫系列(全章)
關注下方公眾號,免費拿Python學習資料!!!