# -*- encoding: utf-8 -*-
import json
import os
'''
第13條: 合理利用try/except/else/finally結構中的每個代碼塊
關鍵:
1 finally塊
特點: finally塊中的代碼一定執行
應用場景: 關閉文件
2 else塊
特點: 如果try塊執行正常,就執行else塊
3 總結
finally塊必須執行
else在try塊正常執行後執行
參考:
Effectiv Python 編寫高質量Python代碼的59個有效方法
'''
def useFinally(fileName):
if not os.path.exists(fileName):
with open(fileName, "w") as f:
f.write("hello world")
try:
fr = open(fileName)
finally:
fr.close()
def useElse(data, key):
try:
map = json.loads(data)
except Exception:
print e
else:
return map[key]
def process():
fileName = "/tmp/a.txt"
useFinally(fileName)
data = {'grade': '329'}
data = json.dumps(data)
result = useElse(data, 'grade')
print result
if __name__ == "__main__":
process()