代码角度:
---------------------------------------------------------------------------------------------------------------------------------
1.(level 1)观察变量的变化,在你感觉变量的值变化有问题时,显示该变量的值;
如:在C++中: cout << “value: ” << value;
在Java中: System.out.println(“value: ” +value);
---------------------------------------------------------------------------------------------------------------------------------
2.(level 2)assertion(断言)
1)理解:
因为Assertion是一种假设,所以它的结果就只有两种(true,false);
在代码最容易出错的地方设置Assertion,就好比在某个地方加了个监控器,当发生异常的时候,会发出警报;
2)具体使用:
在C++中:
#include<cassert>
int main()
{
bool isTrue = false;
assert(isTrue);
return 0;
}
在Java中:
有两种表示:
1)assert Expression1
public class test {
public static void main(String[] args) {
boolean isOpen = false;
assert isOpen == true; // 提示变量值有问题
System.out.println(isOpen);
}
}
2) assert Expression1 : Expression2
public class test {
public static void main(String[] args) {
boolean isOpen = false;
try{
// if (isOpen == true)为真,不进行处理;反之,进行捕获(输出“wrong”)
assert isOpen == true : "wrong";
System.out.println(isOpen);
}catch(AssertionError err){
System.out.println(err.getMessage());
}
}
}
-------------------------------------------------------------------------------------------------------------------------
3)assertion开启决定方式
i) 在C++中里面,编译时决定是否开启assertion。我们见到的c++工程有两个版本(debug版本和release版本),
其中,debug版本中是有assertion,而release版本没有;
ii) 在Java中里面,运行时决定是否开启assertion。这里会带来一定的开销,但在版本管理中,有优势;
开启方式:Run ---> Run... ---> 选择 Arguments 选项卡,在 VM arguments 文本框中输入: -ea
注意: 中间没有空格,如果输入 -da 表示禁止断言。
----------------------------------------------------------------------------------------------------------------------------------------
参考网址:
1.java assert初步使用
2.MicroFish
3.网络学院