# -*- 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()