从代码的角度去调试代码

代码角度:
---------------------------------------------------------------------------------------------------------------------------------
1.level 1)观察变量的变化,在你感觉变量的值变化有问题时,显示该变量的值;
如:在C++中:  cout  << “value: ” <<  value;
     Java中: System.out.println(“value: ” +value);
---------------------------------------------------------------------------------------------------------------------------------
2.level 2assertion(断言)
1)理解
   因为Assertion是一种假设,所以它的结果就只有两种(truefalse);
   在代码最容易出错的地方设置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.网络学院


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值