assert的用法总结

今天在写代码时看到idea有个assert的提示,好奇心驱使之下对它一探究竟,跟着一条一块看看吧

 

断言(assert)的含义

assert() 的用法像是一种"契约式编程",在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作。

其实就相当于一个 if 语句: 

if(假设成立)
{
     程序正常运行;
}
else
{
      报错&&终止程序!(避免由程序运行引起更大的错误)  
}

但是这样写的话,就会有无数个 if 语句,甚至会出现,一个 if 语句的括号从文件头到文件尾。并且大多数情况下,我们要进行验证的假设,只是属于偶然性事件,又或者我们仅仅想测试一下,一些最坏情况是否发生,所以这里有了 assert()。

好处

assert 的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向 stderr 打印一条出错信息,然后通过调用 abort 来终止程序运行。

坏处

使用 assert 的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。

用法总结

基本应用

在函数开始处检验传入参数的合法性

int resetBufferSize(int nNewSize) 
{ 
//功能:改变缓冲区大小, 
//参数:nNewSi

你可能感兴趣的:(技术专家修炼,java,assert)