当前位置: 首页 > news >正文

delphi提示错误行号之Assert(断言)

 

一、用法:Assert(表达式)
1.如果为假 Assert会产生一个EAssertionFailed异常,显示为 Assertion Failed (C:/src/unit1.pas, [size=+0]line 34)
2.如果不想再使用这些检查时,可以使用($ASSERTIONS OFF)或($C-)编译指令
3.要想使Assert在整个项目中失效, 关闭Project Options | Compiler | Assertion 选项。

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

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

四、程序实例
procedure TForm1.Button1Click(Sender: TObject);
begin
//参数1为false时提示,参数2为提示字符
Assert(False,'这地方有错!');
end;

 

相关文章:

  • 转贴一篇友情提示
  • CDH5.3配置Kerberos+LDAP+Sentry记录
  • 未来通信构想 LifeWorks无缝通信
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • mysql5.7 多级主从+multisource
  • 庄子与我的名字
  • 数据结构基础 - 链表的遍历 zz
  • 代码片段添加智能提示,打造一款人见人爱的ORM框架
  • [导入]常用Response对象的使用详解
  • 模板的特化
  • My favorite books
  • JVM(一)——JMM
  • 使用eval元素
  • 属性选择器[ ]里的东西,哪些要加引号
  • hibernate.cfg.xml常见配置
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • android 一些 utils
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • ES6 ...操作符
  • JavaScript 基本功--面试宝典
  • java正则表式的使用
  • Joomla 2.x, 3.x useful code cheatsheet
  • php ci框架整合银盛支付
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • ReactNative开发常用的三方模块
  • Vue 重置组件到初始状态
  • WebSocket使用
  • 对超线程几个不同角度的解释
  • 类orAPI - 收藏集 - 掘金
  • 前端性能优化——回流与重绘
  • 前端之React实战:创建跨平台的项目架构
  • 巧用 TypeScript (一)
  • 如何学习JavaEE,项目又该如何做?
  • 我的业余项目总结
  • 学习Vue.js的五个小例子
  • 找一份好的前端工作,起点很重要
  • ​决定德拉瓦州地区版图的关键历史事件
  • !!Dom4j 学习笔记
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $refs 、$nextTic、动态组件、name的使用
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (12)Hive调优——count distinct去重优化
  • (145)光线追踪距离场柔和阴影
  • (k8s中)docker netty OOM问题记录
  • (zhuan) 一些RL的文献(及笔记)
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (十六)一篇文章学会Java的常用API
  • (算法)求1到1亿间的质数或素数
  • (转)nsfocus-绿盟科技笔试题目
  • .Net core 6.0 升8.0
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET MVC之AOP