• delphi 中assert


    delphi assert()函数的用法

    用法:ASSERT(表达式)

    如果为假,ASSERT会产生一个EASSERTIONFAiled异常,显示为

    Assertion Failed (C:/src/unit1.pas, [size=+0]line 34)

    如果不想再使用这些检查时,可以使用($ASSERTIONS OFF)或($C-)编译指令

    要想使Assert在整个项目中失效, 关闭Project Options | Compiler | Assertion 选项。

    delphi assert()函数的用法
    assert(断言)的作用是用来进行条件测试。可以计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。
    缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。

    用法总结与注意事项:
    1)在函数开始处检验传入参数的合法性
    2)每个assert只检验一个条件,因为同时检验多个条件时,如果断言失败,无法直观的判断是哪个条件失败
    3)不能使用改变环境的语句,因为assert只在DEBUG个生效,如果这么做,会使用程序在真正运行时遇到问题。
    4)assert和后面的语句应空一行,以形成逻辑和视觉上的一致感

    5)有的地方,assert不能代替条件过滤

    用assert函数出现的报错界面

      

    程序一般分为Debug 版本和Release 版本,Debug 版本用于内部调试,Release 版本发行给用户使用。
    断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况。在运行过程中,如果assert 的参数为假,那么程序就会中止(一般地还会出现提示对话,说明在什么地方引发了assert)。

    assert 不是一个仓促拼凑起来的宏。为了不在程序的Debug 版本和Release 版本引起差别,assert 不应该产生任何副作用。所以assert 不是函数,而是宏。程序员可以把assert看成一个在任何系统状态下都可以安全使用的无害测试手段。如果程序在 assert 处终止了,并不是说含有该assert 的函数有错误,而是调用者出了差错,assert 可以帮助我们找到发生错误的原因。

    使用断言捕捉不应该发生的非法情况。不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要作出处理的。
    【规则6-5-2】在函数的入口处,使用断言检查参数的有效性(合法性)。
    【建议6-5-1】在编写函数时,要进行反复的考查,并且自问:“我打算做哪些假定?”一旦确定了的假定,就要使用断言对假定进行检查。
    【建议6-5-2】一般教科书都鼓励程序员们进行防错设计,但要记住这种编程风格可能会隐瞒错误。当进行防错设计时,如果“不可能发生”的事情的确发生了,则要使用断言进行报警。

    ASSERT宏中应该包含的元素:

    判断条件;输出当前断言失败的位置(文件、行数等);返回错误;终止程序...

    在Delphi中 Assert 过程原形


    procedure Assert (expr :Boolean [; const msg: string]);

    注:该文章转自其他地方

  • 相关阅读:
    洛谷 P1026 [NOIP2001 提高组] 统计单词个数
    CodeForces
    CodeForces
    常用的正则表达式(复制粘贴即可)
    Vue生命周期
    前端开发面试题
    前端Vue中动态使用本地图片路径
    《剑指offer》面试题13 在O(1)时间删除链表节点 Java版
    《剑指offer》面试题12 打印1到最大的n位数 Java版
    《剑指offer》面试题11 数值的整数次方 Java版
  • 原文地址:https://www.cnblogs.com/AOECNU/p/3515685.html
Copyright © 2020-2023  润新知