美文网首页
2018-06-29 防御式编程

2018-06-29 防御式编程

作者: lucasdada | 来源:发表于2018-06-29 14:45 被阅读0次

    保护程序免遭非法输入数据的破坏

    检查所有来源于外部的数据的值
    检查子程序所有输入参数的值
    决定如何处理错误的输入数据

    断言

    用错误处理代码来处理预期会发生的状况,用断言来处理绝对不应该发生的状况
    避免把需要执行的代码放到断言中
    用断言来注解并验证前条件和后条件
    对于高健壮性的代码,应该先使用断言再处理错误

    异常

    用异常通知程序的其他部分,发生了不可忽略的错误
    只在真正例外的情况下才抛出异常
    不能用异常来推卸责任
    避免在构造函数和析构函数中抛出异常,除非你在同一个地方把他们捕获
    在适当的抽象层析抛出异常

    隔离程序,使之包容由错误造成的伤害

    隔栏与断言的关系

    隔栏的使用使得断言和错误处理有了清晰的区分。隔栏外部的程序应使用错误处理技术,在那里对数据的任何嘉定都是不安全的,而隔栏内部的程序就应该应该使用断言技术,因为传进来的数据应该已经在通过隔栏时被清理过了,如果隔栏内部的某个子程序检测到了错误的数据,那么这应该是程序里的错误而不是数据里的错误。
    隔栏的使用还展示了”在架构层次上规定应该如何处理错误“的价值。规定隔栏内外的代码是一个架构层次上的决策。

    尽早引入辅助调试的代码

    采用进攻式编程

    应该以一种这样子的方式来处理异常:在开发阶段让它显现出来,而在产品代码运行时让它能够自我恢复。

    计划移除调试辅助性的代码

    确定在产品代码中保留多少防御式代码

    对防御式编程采取防御的姿态

    把握合适的度

    image.png image.png

    相关文章

      网友评论

          本文标题:2018-06-29 防御式编程

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