1. 程式人生 > 其它 >Python入門進階篇 No.1 —— 異常本質_除錯核心理念

Python入門進階篇 No.1 —— 異常本質_除錯核心理念

技術標籤:# 進階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學習資料!!!

在這裡插入圖片描述