`

异常,错误码,防御式编程

 
阅读更多
程序总是有一条主路径,称为happy path,在happy path之外,需要例外处理,常见方式有异常,错误码,防御式编程
设小写字母对应happy path,大写字母对应例外,数字对应外部代码,->表示调用

最普通的就是a->b->c->1->2这样的程序

然后给他加上例外处理
用异常就是a(catch B){}(catch C){}->b->c->1->2
用防御式编程就是if(can cause B){}else if(can cause C){} else{a->b->c->1->2}
用错误码就是a(check error code of B)->b(check error code of C)->c->1->2

异常
优点,可以在一个地方统一处理,也可以在几个的地方分别处理,针对接口编程,并且醒目
缺点,性能,这是可以无视的缺点

防御式编程
优点,可以在一个地方统一处理,也可以在几个的地方分别处理,不过不醒目
缺点,防御是针对实现编程,异常是针对接口编程,所以如果你是至顶向下编程的话,这需要你能未卜先知,另外为了做到100%防御,你需要了解诸如网线是否被老鼠啃了等问题,这需要你了解宇宙的真理

错误码
优点,接近针对接口编程,可以不需要未卜先知,也不需要知道宇宙的真理,不过这好处其实异常也有
缺点,不适合统一处理,如果想统一处理的话,要么错误码层层传递,要么全局变量型的错误码泛滥

所以异常>错误码>防御式编程
稍微复杂一点,只需要a->b->1->c->2,明显看出要处理好C,异常才是最佳实践
分享到:
评论

相关推荐

    代码大全之编程基本功

    - 返回错误码。 - 调用错误处理例程/对象。 - 在发现错误的地方显示错误消息。 - 根据实际情况选择最佳的错误处理方式。 - 关闭程序(这不是一个好的设计模式)。 - **断言**: - 断言是用来检测那些理论上不...

    错误处理的基础指南

    - **选择一种或多种机制来表示和传播错误**:根据具体情况选择合适的错误处理机制,如返回错误码、抛出异常等。 - **选择处理错误的地点**:确定最佳的位置来处理错误,以避免不必要的传播和复杂性。 #### 异常安全...

    JAVA编程-代码规范简要版

    异常处理方面,推荐使用异常类代替返回错误码,这样可以抽离出try/catch代码块,使代码更加整洁。 四、注释 注释的使用应该谨慎,尽量通过规范的代码来表达意思,减少无意义的注释。必要的注释包括法律信息、提供...

    PHP高级编程

    本课程涵盖了多个关键知识点,包括但不限于面向对象编程、PHP框架、性能优化、错误处理与调试、安全实践以及现代PHP开发工具的使用。 首先,面向对象编程(OOP)是PHP高级编程的核心内容。它包括类与对象的概念,...

    WEB安全编程技术规范

    正确的做法是提供模糊的错误信息,并确保所有异常都在安全的环境中得到妥善处理。 - **残缺的认证和会话管理**:弱密码策略、过期的会话和缺乏安全传输都会导致账户被非法访问。强化认证机制,使用HTTPS和其他安全...

    《软件安全的二十四宗罪:编程瑕疵与如何纠正》 [PDF]

    作者通过列举并分析常见的编程错误,旨在帮助开发者理解和预防这些可能导致安全隐患的问题。书中不仅涵盖了设计层面的缺陷,还涉及编码阶段的具体问题,旨在提供全方位的安全防护策略。 1. **设计错误**:在软件...

    PYTHON小黑编程

    - 异常处理:了解try-except结构,学会处理程序运行中的错误和异常。 2. **Python在网络安全中的应用** - 网络通信:通过socket库实现网络连接,发送和接收数据,这是进行网络扫描、嗅探等操作的基础。 - 数据...

    非常好的安全编程资料

    1. 安全编程原则:包括最小权限原则、防御深度原则、错误处理和异常处理的最佳实践等。 2. 漏洞类型:详细解析各种常见的安全漏洞,如SQL注入、跨站脚本、远程代码执行等,并提供预防措施。 3. 安全编程技术:涉及...

    安全编程技巧

    接着,我们看标签“安全编程”,它涵盖了广泛的实践和策略,包括输入验证、错误处理、资源管理等,旨在减少安全漏洞并增强软件的防御能力。 在提供的压缩包文件中,我们可以看到几个关键的PPT文件,它们涵盖了安全...

    易语言密码生成器源码.rar

    6. **错误处理**:良好的软件应具备错误处理机制,防止在异常情况下程序崩溃。在易语言中,可以使用`错误处理`语句来捕获和处理可能出现的错误。 通过对这个源码的学习,开发者不仅可以了解易语言的基础语法,还能...

    ASP.NET安全编程入门经典.pdf

    5. **错误处理与日志记录**:学习如何优雅地处理异常,避免在错误信息中泄露敏感信息,并了解如何实现有效的日志记录,以便于排查问题和检测潜在的安全事件。 6. **代码审查与测试**:理解代码审查的重要性,以及...

    看雪2017安全开发者峰会ppt-2.浅析WEB安全编程

    报错注入是利用错误的SQL语句执行后返回的异常信息,其中可能包含敏感信息;盲注则更为复杂,它通过条件成立与否来判断信息,例如通过substr函数和时间延迟来获取敏感数据。 防御SQL注入的方法包括拦截带有SQL语法...

    C#包装扫码检查

    - **异常防御**:合理设置异常处理,避免因意外情况导致程序崩溃。 - **性能调优**:合理使用缓存,减少不必要的数据库查询,提高整体系统性能。 7. **测试** - **单元测试**:编写针对数据验证方法的单元测试,...

    ATV 安全卫士源代码,基于VB的杀毒防御系统

    9. **异常处理和错误恢复**:VB的错误处理机制允许开发者捕获并处理可能出现的异常情况,确保程序在遇到问题时能优雅地退出或恢复。 10. **多线程编程**:为了提高性能,ATV安全卫士可能会使用多线程技术,让扫描和...

    网站安全编程第6讲

    6. **错误处理与日志记录**:避免在错误消息中暴露过多的系统信息,以免给攻击者提供攻击线索。同时,应建立有效的日志记录和监控系统,以便快速发现并响应异常活动。 7. **代码审查**:定期进行代码审查可以找出...

    PHP核心编程

    4. 错误与异常处理:PHP中的错误报告和异常处理是程序健壮性的重要部分。书中会介绍如何使用try-catch结构捕获和处理异常,以及如何自定义异常类。 5. 文件系统操作:包括文件读写、目录操作、上传下载、文件处理...

    编写安全代码随书源代码Secureco

    同时,返回错误码或抛出自定义异常,可以使代码更易于理解和调试。 资源管理也是安全编程的一部分。在VC++中,确保正确关闭文件、释放内存和终止网络连接等资源至关重要。遵循“获取后立即释放”(RAII)原则,或者...

    密码探测器 vc 源码 sourcecode

    7. **异常处理**:为了防止被目标程序或系统检测到,源码中可能包含异常处理机制,以确保在遇到错误或安全防御时能够优雅地退出。 8. **多线程编程**:为了实现并行处理和提高效率,密码探测器可能采用了多线程技术...

Global site tag (gtag.js) - Google Analytics