精华内容
下载资源
问答
  • java assert 用法介绍

    2015-06-08 20:48:35
    断言语法规则: 1. assert ; 逻辑表达式返回boolean值。如果返回true,则继续执行;否则,将抛出AssertionError异常。 2. assert :;...在Eclipse中,需要开启断言(Assert)才能有效,方法如下: Run ->

    断言语法规则:

    1. assert <逻辑表达式>;

    逻辑表达式返回boolean值。如果返回true,则继续执行;否则,将抛出AssertionError异常。


    2. assert <逻辑表达式>:<信息表达式>;

    在第二种形式中,抛出异常的同时还会打印信息表达式的值。信息表达是可以是任何类型的,包括基本数据类型与引用类型。


    在Eclipse中,需要开启断言(Assert)才能有效,方法如下:

    Run -> Run Configurations -> Arguments页签 -> VM arguments文本框中加上断言开启的标志:-enableassertions 或者-ea 就可以了


    本文由爱电子产品网站长小Ray撰写,未经同意,不得转载,可通过微博QQ联系到我。

    展开全文
  • Java Assert 用法简介

    2014-04-02 16:02:00
    在JDK1.4中增加了Assert的新功能,用于开始、调试时期的错误检测,它可以通过-ea 的JVM参数关闭,关闭以后对程序的性能没有任何影响。...不要在public方法使用assert来代替参数检查。公有方法的...

    在JDK1.4中增加了Assert的新功能,用于开始、调试时期的错误检测,它可以通过-ea 的JVM参数关闭,关闭以后对程序的性能没有任何影响。

         最好的教程 请见:http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html

         简单总结下几点注意点

    1. 不要在public方法中使用assert来代替参数检查。公有方法的参数检查应该有该方法通过条件判断等方式完成,从而抛出理想的异常,而其只会抛出:AssertionError,对异常并不是很明确。AssertionError 继承自Error。
    2. 它的语法有两种:
    • assert Expression1
      Expression1 为条件判断,当其为true时程序正常,为false时,程序抛出AssertError。
    •   assert Expression1
       : Expression2
       :Expression
      1
      同上,
      Expression2必须是有返回值的函数或者其它字符串、变量等。

           3. 编译: javac -source 1.4 MyClass.java

                启动: java -ea MyClass

                Eclipse的话,需要在Run=>JVM Argements 中增加-ea参数

     

    在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都将忽略!),如果要开启断言检查,则需要用开关-enableassertions或-ea来开启。

      assert关键字语法很简单,有两种用法:
      1、assert <boolean表达式>
      如果<boolean表达式>为true,则程序继续执行。如果为false,则程序抛出AssertionError,并终止执行。
      2、assert <boolean表达式> : <错误信息表达式>
      如果<boolean表达式>为true,则程序继续执行。如果为false,则程序抛出java.lang.AssertionError,并输入<错误信息表达式>。
      
    也就是你需要在执行java命令时加入参数-ea,如
    java -ea xxx

    现在来看,个人是不推荐使用的。

    转载于:https://www.cnblogs.com/ttjava/p/3640915.html

    展开全文
  • java assert用法(转)

    2010-05-06 09:36:42
    J2SE 1.4在语言上提供了一个新特性,就是assertion(断言)功能,它是该版本在Java语言方面最大的革新。在软件开发中,assertion是一种经典的调试、测试方式。 assertion(断言)在软件开发中是一种常用的调试方式,很...

    J2SE 1.4在语言上提供了一个新特性,就是assertion(断言)功能,它是该版本在Java语言方面最大的革新。在软件开发中,assertion是一种经典的调试、测试方式。

    assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身、有的是通过库函数等。另外,从理论上来说,通过assertion方式可以证明程序的正确性,但是这是一项相当复杂的工作,目前还没有太多的实践意义。

     

    在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的。下面简单介绍一下Java中assertion的实现。

     

    1.1) 语法表示

     

    在语法上,为了支持assertion,Java增加了一个关键字assert。它包括两种表达式,分别如下:

     

    assert expression1;

    assert expression1: expression2;

    在两种表达式中,expression1表示一个boolean表达式,expression2表示一个基本类型或者是一个对象(Object) ,基本类型包括boolean,char,double,float,int和long。由于所有类都为Object的子类,因此这个参数可以用于所有对象。

     

    1、assert

    如果 为true,则程序继续执行。

    如果为false,则程序抛出AssertionError,并终止执行。

     

    2、assert : <错误信息表达式>

    如果 为true,则程序继续执行。

    如果为false,则程序抛出java.lang.AssertionError,并输出<错误信息表达式>。

     

    1.2) 语义含义

     

    在运行时,如果关闭了assertion功能,这些语句将不起任何作用。如果打开了assertion功能,那么expression1的值将被计算,如果它的值为false,该语句强抛出一个AssertionError对象。如果assertion语句包括expression2参数,程序将计算出expression2的结果,然后将这个结果作为AssertionError的构造函数的参数,来创建AssertionError对象,并抛出该对象;如果expression1值为true,expression2将不被计算。

     

    一种特殊情况是,如果在计算表达式时,表达式本身抛出Exception,那么assert将停止运行,而抛出这个Exception。

     

    1.3) 一些assertion例子

     

    下面是一些Assert的例子。

     

    assert  0 < value;

    assert  0 < value:"value="+value;

    assert  ref != null:"ref doesn''t equal null";

    assert  isBalanced();

     

    1.4) 编译

     

    由于assert是一个新关键字,使用老版本的JDK是无法编译带有assert的源程序。因此,我们必须使用JDK1.4(或者更新)的Java编译器,在使用Javac命令时,我们必须加上-source 1.4作为参数。-source 1.4表示使用JDK 1.4版本的方式来编译源代码,否则编译就不能通过,因为缺省的Javac编译器使用JDK1.3的语法规则。

     

    一个简单的例子如下:

     

    javac -source 1.4 test.java

     

    1.5) 运行

     

    由于带有assert语句的程序运行时,使用了新的ClassLoader和Class类,因此,这种程序必须在JDK1.4(或者更高版本)的JRE下运行,而不能在老版本的JRE下运行。

     

    由于我们可以选择开启assertion功能,或者不开启,另外我们还可以开启一部分类或包的assertion功能,所以运行选项变得有些复杂。通过这些选项,我们可以过滤所有我们不关心的类,只选择我们关心的类或包来观察。下面介绍两类参数:

     

    参数 -esa和 -dsa:

    它们含义为开启(关闭)系统类的assertion功能。由于新版本的Java的系统类中,也使了assertion语句,因此如果用户需要观察它们的运行情况,就需要打开系统类的assertion功能 ,我们可使用-esa参数打开,使用 -dsa参数关闭。 -esa和-dsa的全名为-enablesystemassertions和-disenablesystemassertions,全名和缩写名有同样的功能。

    参数 -ea和 -ea:

    它们含义为开启(关闭)用户类的assertion功能:通过这个参数,用户可以打开某些类或包的assertion功能,同样用户也可以关闭某些类和包的assertion功能。打开assertion功能参数为-ea;如果不带任何参数,表示打开所有用户类;如果带有包名称或者类名称,表示打开这些类或包;如果包名称后面跟有三个点,代表这个包及其子包;如果只有三个点,代表无名包。关闭assertion功能参数为-da,使用方法与-ea类似。

    -ea和-da的全名为-enableassertions和-disenableassertions,全名和缩写名有同样的功能。

    下面表格表示了参数及其含义,并有例子说明如何使用。

    参数 例子 说明

    -ea java -ea 打开所有用户类的assertion

    -da java -da 关闭所有用户类的assertion

    -ea: java -ea:MyClass1 打开MyClass1的assertion

    -da: java -da: MyClass1 关闭MyClass1的assertion

    -ea: java -ea:pkg1 打开pkg1包的assertion

    -da: java -da:pkg1 关闭pkg1包的assertion

    -ea:... java -ea:... 打开缺省包(无名包)的assertion

    -da:... java -da:... 关闭缺省包(无名包)的assertion

    -ea: ... java -ea:pkg1... 打开pkg1包和其子包的assertion

    -da: ... java -da:pkg1... 关闭pkg1包和其子包的assertion

    -esa java -esa 打开系统类的assertion

    -dsa java -dsa 关闭系统类的assertion

    展开全文
  • java assert基本用法

    2019-09-15 22:00:46
    java assert基本用法 assert简介: java assert(断言) 一般断言在开发和测试的阶段进行开启,用于检查程序的基本正确性,在VM arguments里面输入-ea就可以开启了。如果没有这个参数,assert在程序中将不起作用。 ...

    java assert基本用法

    assert简介:

    java assert(断言) 一般断言在开发和测试的阶段进行开启,用于检查程序的基本正确性,在VM arguments里面输入-ea就可以开启了。如果没有这个参数,assert在程序中将不起作用。

    assert基本语法:

    1. assert expression1;

    2. assert expression1: expression2;

    expression1表示一个boolean 表达式,expression2表示一个基本类型,表达式,或者一个对象,用于在失败的时候的输出信息。当expression1为false的时候,程序将会停止并抛出java.lang.AssertionError对象,如果含有expression2则附带expression2内容。

    例子1:

    public static void main(String[] args) {
    		int a = 1;
    		assert a > 1;
    		System.out.println(a);
    	}

    输出:

    Exception in thread "main" java.lang.AssertionError

    例子2

    public static void main(String[] args) {
    		int a = 1;
    		assert a > 1:"a的值大于1了";
    		System.out.println(a);
    	}

    输出:

    Exception in thread "main" java.lang.AssertionError: a的值大于1了

    例子3:

    public static void main(String[] args) {
    		int a = 1;
    		assert a > 1:a;
    		System.out.println(a);
    	}

    输出:

    Exception in thread "main" java.lang.AssertionError: 1

    例子4:

    public static void main(String[] args) {
    	int a = 1;
    	assert a > 1:new A();
    	System.out.println(a);
    }
    class A{
    	@Override
    	public String toString() {
    		return "a的值发生错误";
    	}
    }

    输出:

    Exception in thread "main" java.lang.AssertionError: a的值发生错误

    例子5:

    public static void main(String[] args) {
    		int a = 1;
    		assert a > 1:fun(a);
    		System.out.println(a);
    	}
    	
    	public static String fun(int a){
    		System.out.println(a);
    		return "a的值发生异常";
    	}

    输出:(如果fun方法的返回值为void则编译报错)

    1
    Exception in thread "main" java.lang.AssertionError: a的值发生异常


     





     

    转载于:https://my.oschina.net/hongliangsun/blog/1546439

    展开全文
  • Java assert断言用法

    2020-06-28 14:54:49
    Java assert断言用法1.简介2.用法3.例子4.总结 观前提示: 本文所使用的IDEA版本为ultimate 2019.1,JDK版本为1.8.0_141。 1.简介 编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将...
  • Java Assert使用

    千次阅读 2013-09-12 09:39:59
    Java Assert使用 主要总结一下在eclipse中如何使用断言。  (一)首先明确:   java断言Assert是jdk1.4引入的。  jvm 断言默认是关闭的。  断言是可以局部开启的,如:父类禁止断言,而...
  • java assert 使用

    2015-11-21 22:28:21
    java assert 使用一般用于单元测试类。 1、使用方式有两种: 1.assert Expression1 2.assert Expression1:Expression2 其中Expression1应该总是一个布尔值,Expression2是断言失败时输出的失败消息的字符串。...
  • Java assert使用

    2016-07-18 15:51:58
     java断言Assert是jdk1.4引入的。 jvm 断言默认是关闭的。 断言是可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”。  断言只适用于复杂的调试过程。 断言一般用于程序执行结果...
  • java assert用法

    2014-04-17 10:56:54
    一般来说 assert 在开发的时候是检查程序的安全性的,在发布的时候通常都不使用 assert 。在 1.4 中添加了 assert 关键字和 java.lang.AssertError 类的支持。  首先,我们有必要从一个例子说起 assert...
  • Java Assert使用

    2013-01-05 11:30:22
     java断言Assert是jdk1.4引入的。 jvm 断言默认是关闭的。 断言是可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”。  断言只适用于复杂的调试过程。 断言一般用于程序执行...
  • 一般来说 assert 在开发的时候是检查程序的安全性的,在发布的时候通常都不使用 assert 。在 1.4 中添加了 assert 关键字和 java.lang.AssertError 类的支持。  首先,我们有必要从一个例子说起 ass...
  • java assert

    2016-08-30 16:15:54
    Java陷阱之assert关键字   一、概述 ...在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候
  • java assert用法简介

    2019-10-07 08:51:51
    assert的基本用法 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身、有的是通过库函数等。另外,从理论上来说,...
  • java assert断言的用法

    万次阅读 2016-03-07 10:55:25
    assert关键字是在JDK1.4才被添加,用于程序的调试。用户有两种 1.assert expression expression是逻辑运算表达式,如果expression为true,表示断言成功,程序继续执行。如果为false,会抛出AssertionError,...
  • Java assert

    2017-10-01 16:06:00
    Java中,与C,C++同样有assert关键字,表示断言,用法和含义都差不多。 用法 assert <boolean表达式> 如果为false,则程序抛出AssertionError,并终止执行。 assert <boolean表达式> : <错误信息...
  • java assert基本用法 assert简介: java assert(断言) 一般断言在开发和测试的阶段进行开启,用于检查程序的基本正确性,在VM arguments里面输入-ea就可以开启了。如果没有这个参数,assert在程序中将不起作用。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 90,487
精华内容 36,194
关键字:

java的assert用法

java 订阅