java assert函数_assert函数-论java中assert函数和Python、PHP、C语言assert函数

assert函数广泛在java、Python、PHP、C语言中存在,都有统一的意义,用业界语言称之为"断言"。最初的出发点都是为了方便调试而设计的,但是最近越来越多的开发者不分测试环境和正式环境滥用assert函数,引发了我对广大程序员朋友的担忧,故写此篇文章普及assert函数常识,避免各位朋友滥用assert函数。

简单的概况在各个语言中assert函数的意义:如果表达式的值为假,整个程序将退出,并输出一条错误信息。如果表达式的值为真则继续执行后面的语句。

dad9449aa07e2230a5413931430b6559.pngassert函数

assert函数Java中,断言关键字是从JAVA SE 1.4引入的。为了避免在旧版本的Java代码中使用assert关键字导致的错误,Java在执行时默认不启动断言检查(此时,所有断言语句都将被忽略!),如果您想打开断言检查,您需要使用switch-enable断言或-ea来打开它。

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

75da08b8c2de52c5cc0e4a5448fee76c.pngassert函数

Python中断言函数作用:断言函数是对表达式布尔值的判断,要求表达式计算值必须为真。可用于自动调试。

如果表达式为假,触发异常;如果表达式为真,不执行任何操作。

断言函数形式:

assert(condition)

if not condition:

raise AssertionError()

PHP中assert这个函数在php语言中是用来判断一个表达式是否成立。返回true or false;例如

$s = 123;

assert("is_int($s)");

?>

从这个例子可以看到字符串参数会被执行,这跟eval()类似。不过eval($code_str)只是执行符合php编码规范的$code_str。

已放弃使用assert()的原因是,频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,应当禁用assert调用。

Assert用于避免明显的错误,而不是处理异常。错误和异常是不同的。错误不应该发生,例外是不可避免的。c语言异常可以通过条件判断来处理。其他语言有自己的异常处理机制。

使用assert的一个非常简单的规则是在方法或函数的开头使用它。如果你在一个方法中使用它,你需要仔细考虑它是否合适。在该方法开始时,功能过程还没有开始,并且在功能过程执行期间发生的几乎所有问题都是直接抛异常的。

为assert是用于调试测试程序的,并且不用于正式的生产环境,所以应该考虑用一个更好的测试JUint来代替它。JUint提供了比assert键更多的功能。当然,调试和测试可以通过集成开发环境调试来进行。

因此,应该避免在各种语言中使用assert函数,除非某一天assert函数变得无比的强大,不再区分测试环境和正式环境的切换,此时可以考虑这一点。比较一下断言能给你带来多少好处和麻烦。这是我们选择是否使用它的原则。

好了,先生们女士们,此次关于assert函数就分享到这里!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值