第十章 異常編程
Python使用被稱爲異常 的特殊對象來管理程序執行期間發生的錯誤。 每當發生讓Python不知所措的錯誤時, 它都會建立一個異常對象。 若是你編寫了處理該異常的代碼, 程序將繼續運行;json
若是你未對異常進行處理, 程序將中止, 並顯示一個traceback, 其中包含有關異常的報告。
數據結構
異常是使用try-except 代碼塊處理的。編程語言
try:
print(5/0)
except ZeroDivisionError:
print("You can't divide by zero!") ide
若是try 代碼塊中的代碼運行起來沒有問題, Python將跳過except 代碼塊; 若是try 代碼塊中的代碼致使了錯誤, 函數
Python將查找這樣的except 代碼塊, 並運行其中的代碼, 即其中指定的錯誤與引起的錯誤相同。
在這個示例中, try 代碼塊中的代碼引起了ZeroDivisionError 異常, 所以Python指出了該如何解決問題的except 代碼塊, 並運行其中的代碼。 這樣, 用戶看到的是一條友
好的錯誤消息, 而不是traceback。
學習
使用異常,避免崩潰spa
分析文本對象
方法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中數據
重構