eclipse中开启断言功能:
选择菜单:Run ---> Run... ---> 选择 Arguments 选项卡
在 VM arguments 文本框中输入: -ea 注意 中间没有空格,如果输入 -da 表示禁止断言。
断言作用:
项目调试用得上。
断言一般使用场景:
检查控制流; 在if-then-else和swith-case语句中,我们可以在不应该发生的控制支流上加上assert false语句。如果这种情况发生了,assert能够检查出来。
例如:x取值只能使1,2,3,我们的程序可以如下表示
switch (x)
{ case 1: …;
case 2: …;
case 3: …
default: assert false:"x value is invalid: "+x;
}
在私有函数计算前,检查输入参数是否有效;对于一私有些函数,要求输入满足一些特定的条件,那么我们可以在函数开始处使用assert进行参数检查。对于公共函数,我们通常不使用assertion检查,因为一般来说,公共函数必须对无效的参数进行检查和处理。而私有函数往往是直接使用的。
例如:某函数可能要求输入的参数必须不为null。那么我们可以在函数的一开始加上 assert parameter1!=null : "paramerter is null in test method";
在函数计算后,检查函数结果是否有效;对于一些计算函数,函数运行完成后,某些值需要保证一定的性质,因此我们可以通过assert检查该值。
例如,我们有一个计算绝对值的函数,那么我们就可以在函数的结果处,加上一个语句:
assert value>=0:"Value should be bigger than 0:"+value;
通过这种方式,我们可以对函数计算完的结果进行检查。
检查程序不变量;有些程序中,存在一些不变量,在程序的运行生命周期,这些不变量的值都是不变的。这些不变量可能是一个简单表达式,也可能是一个复杂的表达式。对于一些关键的不变量,我们可以通过assert进行检查。
例如,在一个财会系统中,公司的支出和收入必须保持一定的平衡关系,因此我们可以编写一个表达式检查这种平衡关系,如下表示。
private boolean isBalance() {
……
}
在这个系统中,在一些可能影响这种平衡关系的方法的前后,我们都可以加上assert验证:assert isBalance():"balance is destoried";
分享到:
相关推荐
在标题“Assert使用”中,我们可以理解为这篇文档或博客将详细介绍如何在代码中有效地运用断言(Assert)。 `Assert` 通常在 C++、Java、C# 和 Python 等多种编程语言中被使用,它的主要功能是检查程序中的条件是否...
标题“QtApplets-Q-ASSERT使用”主要探讨的是如何在Qt应用程序中有效地利用`Q_ASSERT`和`Q_ASSERT_X`进行调试。下面将详细解释这两个宏的工作原理、用法以及它们在实际项目中的应用。 1. **Q_ASSERT**: `Q_ASSERT...
STM32 assert_param使用详解 assert_param是一个宏定义,在STM32的固件库和示例程序中广泛使用。它的主要作用是检测传递给函数的参数是否是有效的参数。如果参数无效,assert_param将报告错误,使程序员可以及时...
3. 在开发阶段,合理使用assert来辅助检查程序逻辑,但也不应过度依赖assert,应结合其他调试技术共同使用; 4. assert不是错误处理机制,它不是用来处理那些能够预期到并且能够妥善处理的情况,而是用来快速发现和...
在本篇文章中,我们将深入探讨如何在VC中使用`assert`断言,以及它在软件开发中的作用。 `assert`宏定义在`<assert.h>`头文件中,主要用于测试假设条件。当程序运行到含有`assert`的语句时,如果表达式的值为零(即...
C语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC语言头文件 ASSERTC...
使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要...
assert.h头文件下载
以下是关于C语言中使用 ASSERT 进行调试的八个技巧。 1. 理解 ASSERT 的定义:在程序的某个特定点,断言会检查一个布尔表达式是否为真。如果该表达式为假,就意味着程序中存在缺陷。因此,断言是对程序状态的假设,...
在这个“systemverilog设计:assert应用的例子(ncverilog测试过的)代码”中,我们可以期待看到一些使用`assert`的示例,这些示例已经通过了ncverilog仿真器的验证。ncverilog是由Cadence公司开发的一种流行的...
对于开始学vc的人,对于assert,assert_valid,verify,trace的宏感到很奇怪,总是觉得很难掌握似的,其实这些主要是没有理清楚他们各自宏之间深层次的意义。
在IT行业中,异常处理是系统稳定性和健壮性的重要组成部分,尤其是在使用Spring Boot进行Web开发时。本项目“业务异常提示处理 springboot+Assert(自定义断言)”着重于利用Spring Boot的特性来构建高效、易维护的...
Visual Assert is a Visual Studio® AddIn that allows you to easily write, manage, run, and debug your C/C++ unit tests – without ever leaving the Visual Studio® IDE. No fiddling with command line ...
在 STM32 开发过程中,为了确保程序的稳定性和可靠性,经常需要使用到断言(assert)来验证函数参数的有效性。`assert_param` 是一个用于参数验证的宏,在 STM32 的开发库中被广泛使用。 #### 二、assert_param 的...
在断言失败的情况下,console.assert使用util.format方法来格式化错误信息,并将这个信息作为参数传递给assert.ok函数。assert模块的ok函数本质上是一个检查值是否为真值的方法,如果检查失败,会抛出一个...
Java断言(assert) Java断言是一种 debugging 机制,允许开发者在Java程序中添加检查点,以确保程序的正确性。断言可以在开发和测试阶段使用,以确保程序的正确性和可靠性。 Java断言的历史 Java断言是从 JDK 1.4 ...
assert()宏是用于保证满足某个特定条件。 用法是: assert(表达式); 如果表达式的值为假,整个程序将退出,并输出一条错误信息。如果表达式的值为真则继续执行后面的语句...使用这个宏前需要包含头文件assert.h 例如
适用于Java大部分非空判断,有效的减少空指针问题,直接调用Assert 里面的方法就行,非常方便,你值得拥有