第十章 異常
Python使用被稱為異常 的特殊對象來管理程式執行期間發生的錯誤。 每當發生讓Python不知所措的錯誤時, 它都會建立一個異常對象。 如果你編寫了處理該異常的代碼, 程式将繼續運作;
如果你未對異常進行處理, 程式将停止, 并顯示一個traceback, 其中包含有關異常的報告。
異常是使用try-except 代碼塊處理的。
try:
print(5/0)
except ZeroDivisionError:
print("You can't divide by zero!")
如果try 代碼塊中的代碼運作起來沒有問題, Python将跳過except 代碼塊; 如果try 代碼塊中的代碼導緻了錯誤,
Python将查找這樣的except 代碼塊, 并運作其中的代碼, 即其中指定的錯誤與引發的錯誤相同。
在這個示例中, try 代碼塊中的代碼引發了ZeroDivisionError 異常, 是以Python指出了該如何解決問題的except 代碼塊, 并運作其中的代碼。 這樣, 使用者看到的是一條友
好的錯誤消息, 而不是traceback。
使用異常,避免崩潰
分析文本
方法split() 以空格為分隔符将字元串分拆成多個部分, 并将這些部分都存儲到一個清單中
title = "Alice in Wonderland"
title.split()
['Alice', 'in', 'Wonderland'] #結果
使用多個檔案
失敗時一聲不吭
并非每次捕獲到異常時都需要告訴使用者, 有時候你希望程式在發生異常時一聲不吭, 就像什麼都沒有發生一樣繼續運作。
要讓程式在失敗時一聲不吭, 可像通常那樣編寫try 代碼塊, 但在except 代碼塊中明确地告訴Python什麼都不要做。
Python有一個pass 語句, 可在代碼塊中使用它來讓Python什麼都不要做:
決定報告哪些錯誤
存儲資料
子產品json 讓你能夠将簡單的Python資料結構轉儲到檔案中, 并在程式再次運作時加載該檔案中的資料。 你還可以使用json 在Python程式之間分享資料。 更重要的是, JSON資料
格式并非Python專用的, 這讓你能夠将以JSON格式存儲的資料與使用其他程式設計語言的人分享。 這是一種輕便格式, 很有用, 也易于學習
使用json.dump() 和json.load()
import json
numbers = [2, 3, 5, 7, 11, 13]
filename = 'numbers.json'
with open(filename, 'w') as f_obj:
son.dump(numbers, f_obj)
導入子產品json,函數json.dump()将數字清單存儲到檔案numbers.json中
import json
filename = 'numbers.json'
with open(filename) as f_obj:
numbers = json.load(f_obj)
print(numbers)
導入子產品json,函數json.load()加載存儲在numbers.json中資料
重構