Delphi 中ASSERT用法
2016-05-23 14:43
489 查看
用法: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函数出现的报错界面
![](http://img.blog.163.com/photo/hxF2QrKLKyvwpBRNl4fDIA==/4553983648202332323.jpg)
如果为假,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函数出现的报错界面
![](http://img.blog.163.com/photo/hxF2QrKLKyvwpBRNl4fDIA==/4553983648202332323.jpg)
相关文章推荐
- Python3写爬虫(四)多线程实现数据爬取
- C#实现多线程的同步方法实例分析
- 浅谈chuck-lua中的多线程
- C#简单多线程同步和优先权用法实例
- C#多线程学习之(四)使用线程池进行多线程的自动管理
- C#多线程编程中的锁系统(三)
- 解析C#多线程编程中异步多线程的实现及线程池的使用
- C#多线程学习之(六)互斥对象用法实例
- 基于一个应用程序多线程误用的分析详解
- C#多线程学习之(三)生产者和消费者用法分析
- C#多线程学习之(一)多线程的相关概念分析
- C#多线程之Thread中Thread.IsAlive属性用法分析
- 分享我在工作中遇到的多线程下导致RCW无法释放的问题
- C#多线程编程之使用ReaderWriterLock类实现多用户读与单用户写同步的方法
- C#控制台下测试多线程的方法
- 21天学习android开发教程之SurfaceView与多线程的混搭
- Ruby 多线程的潜力和弱点分析
- C#中WPF使用多线程调用窗体组件的方法
- C#如何对多线程、多任务管理(demo)
- C#实现多线程的Web代理服务器实例