美文网首页程序员
状态选择,异常处理,框架

状态选择,异常处理,框架

作者: Zero2none | 来源:发表于2017-12-31 13:21 被阅读15次

    什么是好的代码

    处理文件刘时,无数次被各种error和潜藏的warning所折腾。

    1. 打开文件
    2. 判断文件大小
    3. 分配内存空间
    4. 读入文件到内存
    5. 关闭文件

    状态码

    曾认为这样

    通盘考虑所有情况 -> 使用状态码状态码

    将所有的情况处理掉,那异常什么,报错什么的自然也就不存在了。
    没错这样的确实是好的代码,从某种意义上而言。

    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
    

    后记

    使用状态码处理手动处理,
    缺点有两个:

    1. 后续处理麻烦
    2. 业务逻辑不清晰

    这样的做法,可以做,但不是一个长久有效可行的方式。
    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()
    

    写在后面的

    异常处理从一开始的状态码的使用到后来的异常处理机制的成立,
    更多的是思维上的转变,一种框架式的思维。

    相关文章

      网友评论

        本文标题:状态选择,异常处理,框架

        本文链接:https://www.haomeiwen.com/subject/olaogxtx.html