Java assert在什么时候使用

原创 2016年05月31日 06:46:06
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为 false,那么系统会报告一个 AssertionError。它用于调试目的:
    assert(a > 0); // throws an AssertionError if a <= 0

断言可以有两种形式:    
  • assert Expression1 ;
  • assert Expression1 : Expression2 ;
Expression1 应该总是产生一个布尔值。Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。

断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记: 
    javac -source 1.4 Test.java
  • 要在运行时启用断言,可使用 -enableassertions 或者 -ea 标记。
  • 要在运行时选择禁用断言,可使用 -da 或者 -disableassertions 标记。
  • 要系统类中启用断言,可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。

可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。
版权声明:本文为芝麻软件工作室原创文章,未经芝麻软件工作室允许不得转载。

什么时候用assert

java面试笔试题:什么时候用assert?     assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制.在实现中,assert...
  • tianwailaikewbb
  • tianwailaikewbb
  • 2014年05月14日 21:28
  • 2437

ASSERT什么时候用?怎么用?

ASSERT什么时候用?怎么用? ASSERT()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE (0), 程序将报告错误,并终止执行。如果表达式不为0,则继...
  • DSIslander
  • DSIslander
  • 2012年11月22日 22:26
  • 853

Java - 什么时候用断言(assert)?

断言在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。一般来说,断言用于保证程序最基本、关键的正确性。断言检查通常在开发和测试时开启。为了保证程序的执行效率,在软件发布后断言检查通常是关...
  • chimomo
  • chimomo
  • 2017年10月26日 15:18
  • 109

在什么时候用assert?

可以再预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不俺的参数过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既...
  • Forever_sun_pp
  • Forever_sun_pp
  • 2017年06月10日 09:27
  • 245

Java中的assert使用

1、assertion(断言)是jdk1.4才开始支持的新功能,主要在开发和测试时开启,为保证性能,在正式发布后通常是关闭。 2、Java中assertion与C中的assertion的区别在于:1)...
  • hyp3353
  • hyp3353
  • 2009年05月28日 16:11
  • 8291

java中assert关键字

Java2在1.4中新增了一个关键字:assert。在程序开发过程中使用它创建一个断言(assertion)。,它的语法形式有如下所示的两种形式: 1、assert condition;     这里...
  • onlyyjco
  • onlyyjco
  • 2016年08月29日 12:14
  • 1193

什么时候使用assert

assert(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个b...
  • weixin_40695212
  • weixin_40695212
  • 2017年12月11日 22:40
  • 17

从头认识java-13.7 什么时候使用泛型?

这一章节我们来讨论一下什么时候使用泛型?答案:当你希望代码能够跨多个类型(不同的类型,不包含继承关系)工作的时候。1.当没有确切类型的时候下面是错误的代码:package com.ray.ch13; ...
  • raylee2007
  • raylee2007
  • 2015年12月14日 16:59
  • 2141

java的assert关键字的用法

Java陷阱之assert关键字   一、概述   在C和C++语言中都有assert关键,表示断言。 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多。   二、语法   在J...
  • LiuShuXiaDeRiLuo
  • LiuShuXiaDeRiLuo
  • 2017年01月22日 14:51
  • 603

Java实例说明 你会玩断言(assert)吗?

你会玩断言(assert)吗?
  • HZ_LIZX
  • HZ_LIZX
  • 2017年02月13日 16:53
  • 220
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java assert在什么时候使用
举报原因:
原因补充:

(最多只允许输入30个字)