什么是好的代码
处理文件刘时,无数次被各种error和潜藏的warning所折腾。
- 打开文件
- 判断文件大小
- 分配内存空间
- 读入文件到内存
- 关闭文件
状态码
曾认为这样
通盘考虑所有情况 -> 使用状态码状态码
将所有的情况处理掉,那异常什么,报错什么的自然也就不存在了。
没错这样的确实是好的代码,从某种意义上而言。
def readFile():
# 伪代码
errorCode = 0
# open the file
if (FileOpen):
# determine its size
if (GetFileLength):
# allocate memory
if (GetEnoughMemory):
# read file into memory
if (readFailed):
errorCode = -1
else:
erroCode = -2
else:
errorCode = -3
else:
errorCode = -4
else:
errorCode = -5
return errorCode
后记
使用状态码处理手动处理,
缺点有两个:
- 后续处理麻烦
- 业务逻辑不清晰
这样的做法,可以做,但不是一个长久有效可行的方式。
readFile()
中业务分散在各处,不清楚,各处的耦合性很大。
异常处理机制
每次都这么处理,是不是有一种简单的通用的方法,可以处理这样的情况呢?
异常处理机制,出现了
try:
f = open(file, 'r')
content = f.read()
# do with content
except:
haveExcept()
finally:
f.close()
简化版
with open(file, 'r') as f:
# do with f
f.read()
写在后面的
异常处理从一开始的状态码的使用到后来的异常处理机制的成立,
更多的是思维上的转变,一种框架式的思维。
网友评论