精华内容
下载资源
问答
  • javaassert用法

    2014-04-01 20:54:20
     java断言Assert是jdk1.4引入。  jvm 断言默认是关闭。  断言是可以局部开启,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”。  断言只适用于复杂调试过程。  断言...

    主要总结一下在eclipse中如何使用断言

    (一)首先明确:

        java断言Assert是jdk1.4引入的。

        jvm 断言默认是关闭的。

        断言是可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”。

        断言只适用于复杂的调试过程。

        断言一般用于程序执行结果的判断,千万不要让断言处理业务流程。

    二)判断eclipse是否开启了断言,代码如下:

    public class AssertTest { 
    
    public static void main(String[] args) {
       boolean isOpen = false;  
       assert isOpen=true; //如果开启了断言,会将isOpen的值改为true 
       System.out.println(isOpen);//打印是否开启了断言   
    }
    
    }

        执行上面代码,如果打印 true说明已经启用了断言,如果为 false 则没有启用断言。

        如果没有启用断言,则按按照下面方法开启断言。

    (三)eclipse中开启断言

        选择菜单:Run ---> Run Configurations ---> 选择 Arguments 选项卡

        在 VM arguments 文本框中输入: -ea   注意 中间没有空格,如果输入 -da 表示禁止断言。

        然后关闭该窗口,提示保存,然后保存就开启了断言。

        再次执行第二步操作,如果打印true,说明开启断言成功。

        如果禁止断言,则按第二步操作中,删除 -ea 或者将 -ea 改为 -da 即可。

    (四)断言使用

       第 1 种使用方法:

    public static void main(String[] args) {
       boolean isOk = 1>2;
       assert isOk; 
       System.out.println("程序正常");
       
    }

       因为 1>2 显然是错误的,所以执行结果抛出异常:Exception in thread "main" java.lang.AssertionError

       如果把 1>2 改为 1<2 则程序能顺利执行,打印 “程序正常”

       第 2 种使用方法:

    public static void main(String[] args) {
         boolean isOk = 1>2;
         try{
               assert isOk : "程序错误";
               System.out.println("程序正常");
            }catch(AssertionError err){
              System.out.println(err.getMessage());
         }
       
    }

         assert 后面跟个冒号表达式。如果冒号前为 true,则冒号后面的被忽略

         如果冒号前为false,则抛出AssertionError,错误信息内容为冒号后面的内容,上面程序执行结果就是打印:"程序错误"

    (五)有关断言的更多参数(转帖一下):

         -ea java -ea 打开所有用户类的assertion 
         -da java -da 关闭所有用户类的assertion 
         -ea:<classname> java -ea:MyClass1 打开MyClass1的assertion 
         -da:<classname> java -da: MyClass1 关闭MyClass1的assertion 
         -ea:<packagename> java -ea:pkg1 打开pkg1包的assertion 
         -da:<packagename> java -da:pkg1 关闭pkg1包的assertion 
         -ea:... java -ea:... 打开缺省包(无名包)的assertion 
         -da:... java -da:... 关闭缺省包(无名包)的assertion 
         -ea:<packagename>... java -ea:pkg1... 打开pkg1包和其子包的assertion 
         -da:<packagename>... java -da:pkg1... 关闭pkg1包和其子包的assertion 
         -esa java -esa 打开系统类的assertion 
         -dsa java -dsa 关闭系统类的assertion 
         综合使用 java -dsa:MyClass1:pkg1 关闭MyClass1和pkg1包的assertion

    展开全文
  • 最好教程 请见:http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html简单总结下几点注意点不要在public方法中使用assert来代替参数检查。公有方法参数检查应该有该方法通过条件判断等方...

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

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

    简单总结下几点注意点

    不要在public方法中使用assert来代替参数检查。公有方法的参数检查应该有该方法通过条件判断等方式完成,从而抛出理想的异常,而其只会抛出:AssertionError,对异常并不是很明确。AssertionError 继承自Error。

    它的语法有两种:

    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

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

    2、assert :

    如果为true,则程序继续执行。如果为false,则程序抛出java.lang.AssertionError,并输入。

    也就是你需要在执行java命令时加入参数-ea,如

    java -ea xxx

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

    展开全文
  • Javaassert用法

    2011-12-29 23:50:00
    assert語句主要是用在調試時,在默認情况下是關閉。 可以用 -ea 或 -da 在終端行起用或關閉斷言語句。 看看如下代碼運行結果便可知。 View Code 1 public class Test 2 { 3 public static void main...

    assert語句主要是用在調試時,在默認情况下是關閉的。

    可以用 -ea 或 -da 在終端行起用或關閉斷言語句。

    看看如下的代碼運行結果便可知。

    View Code
     1 public class Test 
    2 {
    3 public static void main(String[] args)
    4 {
    5 double x = -6;
    6 assert x > 0: "x must be positive.";
    7 double y = Math.sqrt(x);
    8 System.out.println(y);
    9 }
    10 }

    转载于:https://www.cnblogs.com/alex4814/archive/2011/12/29/2306828.html

    展开全文
  • assert是在J2SE1.4中引入新特性,assertion就是在代码中包括布尔型状态,...在1.4中添加了assert关键字和java.lang.AssertError类支持。首先,我们有必要从一个例子说起assertpublic class AssertTest{pub...

    assert

    是在

    J2SE1.4

    中引入的新特性,

    assertion

    就是在代码中包括的布尔型状态,程序员认为这个状态是

    true

    。一般来说

    assert

    在开发的时候是检查程序的安全性的,在发布的时候通常都不使用

    assert

    。在

    1.4

    中添加了

    assert

    关键字和

    java.lang.AssertError

    类的支持。

    首先,我们有必要从一个例子说起

    assert

    public class AssertTest

    {

    public static void main(String[] args)

    {

    AssertTest at = new AssertTest();

    at.assertMe(true);

    at.assertMe(false);

    }

    privatevoid assertMe(boolean boo)

    {

    assert boo?true:false;

    System.out.println(true condition);

    }

    }

    程序中包含了

    assert

    的话,你要用

    javac -source 1.4 xxx.java

    来编译,否则编译器会报错的。要想让

    assert

    得部分运行的话,要使用

    java -ea xxx

    来运行,否则包含

    assert

    得行会被忽略。下面我们运行

    javac -source 1.4 AssertTest.java

    java -ea AssertTest

    看看结果的输出是:

    true condition

    Exception in thread main java.lang.AssertionError

    at AssertTest.assertMe(AssertTest.java:13)

    at AssertTest.main(AssertTest.java:7)

    当我们运行

    at.assertMe(true)

    得时候,由于

    assert boo?true:false

    相当于

    assert true;

    因此没有任何问题,程序往下执行打印出

    true condition

    ,但是执行

    at.assertMe(false)

    的时候相当于

    assert false

    ,这个时候解释器就会抛出

    AssertionError

    了,程序就终止了。大家必须清楚

    AssertionError

    是继承自

    Error

    得,因此你可以不再程序中

    catch

    它的,当然你也可以在程序中

    catch

    它然后程序可以继续执行。例如:

    public class AssertTest

    {

    public static void main(String[] args)

    {

    AssertTest at = new AssertTest();

    try

    {

    at.assertMe(true);

    at.assertMe(false);

    }

    catch(AssertionError ae)

    {

    System.out.println(AsseriontError catched);

    }

    System.out.println(go on);

    }

    privatevoid assertMe(boolean boo)

    {

    assert boo?true:false;

    System.out.println(true condition);

    }

    }

    assert

    还有另外一种表达的方式,就是

    assert exp1:exp2;

    其中

    exp1

    是个

    boolean

    返回值得表达式,而

    exp2

    可以是原始的数据类型或者对象都可以例如:

    boolean boo = true;

    String str = null;

    assert boo = false

    str=error;

    我们刚开始讲得

    assert exp1

    得形式,当

    exp1

    false

    得时候,

    AssertionError

    得默认构造器会被调用,但是

    assert exp1:exp2

    这样的形式,当

    exp1

    true

    的时候后面

    exp2

    被或略,如果

    false

    的话,后面的表达式的结果会被计算出来并作为

    AssertionError

    得构造器参数。看下面的例子:

    public class AssertTest

    {

    public static void main(String[] args)

    {

    AssertTest at = new AssertTest();

    at.assertMe(true);

    at.assertMe(false);

    }

    privatevoid assertMe(boolean boo)

    {

    String s = null;

    assert boo?true:false:s = hello world;

    System.out.println(true condition);

    }

    }

    运行的时候会得到这样的结果

    true condition

    Exception in thread main java.lang.AssertionError: hello world

    at AssertTest.assertMe(AssertTest.java:14)

    at AssertTest.main(AssertTest.java:7)

    Assert

    最好不要滥用,原因是

    assert

    并不一定都是

    enable

    的,下面两种情况就不应该用

    assert

    1

    不要再

    public

    的方法里面检查参数是不是为

    null

    之类的操作

    例如

    public int get(String s)

    {

    assert s != null;

    }

    如果需要检查也最好通过

    if s = null

    抛出

    NullPointerException

    来检查

    2

    不要用

    assert

    来检查方法操作的返回值来判断方法操作的结果

    例如

    assert list.removeAll();

    这样看起来好像没有问题

    但是想想如果

    assert

    disable

    呢,那样他就不会被执行了

    所以

    removeAll()

    操作就没有被执行

    可以这样代替

    boolean boo = list.removeAl();

    assert boo;

    展开全文
  • java的assert关键字的用法

    千次阅读 2017-01-22 14:51:58
    Java陷阱之assert关键字   一、概述 ...在Java中,assert关键字是从JAVA SE 1.4 引入,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行时候默认是不启动断言检查(这个时候
  • 介绍Java的assert用法

    千次阅读 2012-06-25 21:31:43
    介绍Java的assert用法  assert是在J2SE1.4中引入的新特性,assertion就是在代码中包括的布尔型状态,程序员认为这个状态是true。一般来说assert在开发的时候是检查程序的安全性的,在发布的时候通常都不使用...
  • java assert基本用法

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

    万次阅读 2016-09-07 15:41:58
    assert是在J2SE1.4中引入新特性,assertion就是在代码中包括布尔型状态,程序员认为这个状态是true。一般来说assert在开发时候是检查程序安全性,在发布时候通常都不使用assert。在1.4中添加了assert...
  • java assert的用法

    2014-04-17 10:56:54
    assert 是在 J2SE1.4 中引入新特性, assertion 就是在代码中包括布尔型状态,...在 1.4 中添加了 assert 关键字和 java.lang.AssertError 类支持。  首先,我们有必要从一个例子说起 assert
  • java assert的用法简介

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

    千次阅读 2014-09-08 23:59:28
    1. assert booleanExpression; 如果为true,程序继续执行,否则抛出java.lang.AssertionError, 且程序终止执行 2. assert booleanExpression : errorMessage; 如果为true,程序继续执行,否则抛出java.lang....
  • 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用法

    2009-05-07 10:13:00
    assert是在J2SE1.4中引入新特性,assertion就是在代码中包括布尔型状态,程序员认为这个...在1.4中添加了assert关键字和java.lang.AssertError类支持。 首先,我们有必要从一个例子说起assertpublic class Ass
  • Java Assert 用法简介

    2014-04-02 16:02:00
    在JDK1.4中增加了Assert的新功能,用于开始... 最好教程 请见:http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html 简单总结下几点注意点 不要在public方法中使用assert来代替参数检查。公有方法...
  • java assert 用法介绍

    2015-06-08 20:48:35
    1. assert ; 逻辑表达式返回boolean值。如果返回true,则继续执行;否则,将抛出AssertionError异常。 2. assert :; 在第二种形式中,抛出异常同时还会打印信息表达式值。信息表达是可以是任何类型,包括...
  • assert 是在 J2SE1.4 中引入新特性, assertion 就是在代码中包括布尔型状态,...在 1.4 中添加了 assert 关键字和 java.lang.AssertError 类支持。  首先,我们有必要从一个例子说起 ass...
  • 二、语法在Java中,assert关键字是从JAVA SE 1.4 引入,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行时候默认是不启动断言检查(这个时候,所有断言语句都 将忽略!),如果要开启断....
  • javaassert的用法理解

    2013-03-31 21:24:00
    J2SE 1.4在语言上提供了一个新特性,就是assertion功能,它是该版本在Java语言方面最大革新。 从理论上来说,通过 assertion方式可以证明程序正确性,但是这是一项相当复杂工作,目前还没有太多实践意义...
  • Javaassert的用法『转』

    千次阅读 2008-03-23 15:43:00
    介绍Java的assert用法 assert是在J2SE1.4中引入的新特性,assertion就是在代码中包括的布尔型状态,程序员认为这个状态是true。一般来说assert在开发的时候是检查程序的安全性的,在发布的时候通常都不使用assert...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 252
精华内容 100
关键字:

java的assert用法

java 订阅