zoukankan      html  css  js  c++  java
  • J2SE 断言 [Assert]

    TestAssertion.java

    代码:

    /**
     * 断言 [Assert]
     *  从jdk1.4版本开始,java语言中引入了断言 [Assert]
     *  机制,允许java开发者在代码中加入一些检查语句,主要用于程序调试目的:
     *
     *   1、断言机制在用户定义的boolean表达式 [判定条件]结果为false时抛出一个Error对象,其类型为AssertionError
     *
     *   2、当我们需要在约定的条件不成立时中断当前操作的话,可以使用断言;
     *  
     *   3、作为Error的一种断言失败也不需要捕获处理或申明抛出,一旦出现了则终止程序,不必进行补救和恢复;
     *
     *  启用胡禁用断言
     *   开启断言功能:
     *    java运行时环境默认设置为关闭断言功能,因此在使用断言以前,血药在运行java程序时开启断言功能;
     *
     *    java -ea MyApClass
     *    或者:
     *    java -enableassertions MyAppClass
     *  
     *   关闭断言功能:
     *    java -da MyAppClass
     *    或者:
     *    java -disableassertion MyAppClass
     *   
     *
     *
     *
     */
    package com.b510.examples.断言.action;

    /**
     * @author Hongten
     *
     * @time 2011-8-11 2011
     */
    public class TestAssertion {

     /**
      * @param args
      */
     public static void main(String[] args) {
      new TestAssertion().process(-12);
      new TestAssertion().message(-2);

     }

     public void process(int age) {
      assert age >= 0;
      System.out.println("你的年龄是: " + age);
     }

     public void message(int age) {
      assert age >= 0 : "年龄超出合理范围!";
      System.out.println("你的年龄是: " + age);
     }

    }

    ***************************Hongten************************

    运行效果:

    ***************************编译************************
    E:\test\worksplace\断言>javac TestAssertion.java

    ***************************默认执行************************

    E:\test\worksplace\断言>java TestAssertion
    你的年龄是: -2
    你的年龄是: -12

    ***************************开启断言************************

    E:\test\worksplace\断言>java -ea TestAssertion
    Exception in thread "main" java.lang.AssertionError: 年龄超出合理范围!
            at TestAssertion.message(TestAssertion.java:14)
            at TestAssertion.main(TestAssertion.java:3)

    ***************************开启断言************************

    E:\test\worksplace\断言>java -enableassertions TestAssertion
    Exception in thread "main" java.lang.AssertionError: 年龄超出合理范围!
            at TestAssertion.message(TestAssertion.java:14)
            at TestAssertion.main(TestAssertion.java:3)

    ***************************关闭断言************************

    E:\test\worksplace\断言>java -da TestAssertion
    你的年龄是: -2
    你的年龄是: -12

    ***************************关闭断言************************

    E:\test\worksplace\断言>java -disableassertions TestAssertion
    你的年龄是: -2
    你的年龄是: -12

  • 相关阅读:
    012 数据类型基础
    013 数据类型:数字类型
    Codeforces 235C Cyclical Quest (后缀自动机)
    BZOJ 4032 Luogu P4112 [HEOI2015]最短不公共子串 (DP、后缀自动机)
    BZOJ 4278 [ONTAK2015]Tasowanie (后缀数组)
    [加强版] Codeforces 835D Palindromic characteristics (回文自动机、DP)
    BZOJ 4044 Luogu P4762 [CERC2014]Virus Synthesis (回文自动机、DP)
    BZOJ 2434 Luogu P2414 [NOI2011]阿狸的打字机 (AC自动机、树状数组)
    BZOJ 2754 [SCOI2012]喵星球上的点名 (AC自动机、树状数组)
    BZOJ 4327 [JSOI2012]玄武密码 (AC自动机)
  • 原文地址:https://www.cnblogs.com/hongten/p/2134836.html
Copyright © 2011-2022 走看看