一、Assert用法:

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

Java assert详解:

Assert是从JDK1.4才开始引入的,但我使用的是JDK1.6,没试过以前的版本.

assertion 断言一般是在调试程序时使用,特别是使用Junit做单元调试时,更是大量使用assert.

assert有两种语法:

1.assert expre1

exp1必须是返回boolean.

如果[boolean表达式]为true,则程序继续执行。

   如果为false,则程序抛出AssertionError,并终止执行。
  1. public class AssertTest2 {
  2. public static void main(String[] args) {
  3. test1(-5);
  4.  
  5. }
  6. public static void test1(int a)
  7. {
  8. assert a>0;
  9. System.out.println(a);
  10. }
  11.  
  12. }

2.第二种语法:

assert exp1:exp2

assert[boolean 表达式 : 错误表达式 (日志)]
如果[boolean表达式]为true,则程序继续执行。
如果为false,则程序抛出java.lang.AssertionError,输出[错误信息]。
  1. public class AssertTest2 {
  2. public static void main(String[] args) {
  3.  
  4. test2(-3);
  5. }
  6.  
  7. public static void test2(int a)
  8. {
  9. assert a>0:"something goes wrong here,a cannot be less than 0";
  10. System.out.println(a);
  11. }
  12. }

 二、IDEA中启动Assert:

在VM option中添加“-ea”

Self20171218_Assert断言使用的更多相关文章

  1. iOS-----程序异常处理----- 断言NSAssert()和NSParameterAssert区别和用处

    NSAssert和assert是断言,主要的差别是assert在断言失败的时候只是简单的终止程序,而NSAssert会报告出错误信息并且打印出来.所以尽管的使用NSAssert,可以不去使用asser ...

  2. GO语言总结(5)——类型转换和类型断言

    上一篇博客介绍了Go语言的数组和切片——GO语言总结(4)——映射(Map),本篇博客介绍Go语言的类型转换和类型断言 由于Go语言不允许隐式类型转换.而类型转换和类型断言的本质,就是把一个类型转换到 ...

  3. postman 断言解析

    最近在学习postman官方文档, 顺势翻译出来,以供学习! postman断言是JavaScript语言编写的,在postman客户端指定区域编写即可. 断言会在请求返回之后,运行,并根据断言的pa ...

  4. 测试框架Mocha与断言expect

    测试框架Mocha与断言expect在浏览器和Node环境都可以使用除了Mocha以外,类似的测试框架还有Jasmine.Karma.Tape等,也很值得学习. 整个项目源代码: 为什么学习测试代码? ...

  5. JavaScrict中的断言调试

    今天在看忍者秘籍的时候,看到一个断言方法.查阅了一下资料,原来javascript中的console也包含这个方法.具体用法如下: <script type="text/javascr ...

  6. 断言与异常(Assertion Vs Exception)

    在日常编程实践中,断言与异常的界限不是很明显,这也使得它们常常没有被正确的使用.我也在不断的与这个模糊的怪兽搏斗,仅写此文和大家分享一下我的个人看法.我想我们还可以从很多角度来区别断言和异常的使用场景 ...

  7. 断言(Assert)与异常(Exception)

    断言是被用来检查非法情况而不是错误情况,即在该程序正常工作时绝不应该发生的非法情况,用来帮助开发人员对问题的快速定位.异常处理用于对程序发生异常情况的处理,增强程序的健壮性.容错性,减少程序使用中对用 ...

  8. Linux Kernel 代码艺术——编译时断言

    本系列文章主要写我在阅读Linux内核过程中,关注的比较难以理解但又设计巧妙的代码片段(不关注OS的各个模块的设计思想,此部分我准备写在“深入理解Linux Kernel” 系列文章中),一来通过内核 ...

  9. selenium自动化-java-封断言类2

    封装断言类 package streamax.com; import java.util.ArrayList; import java.util.List; import org.testng.Ass ...

随机推荐

  1. Datatable转实体 实体转换辅助类

    using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.R ...

  2. CodeForces 493B Vasya and Wrestling 【模拟】

    B. Vasya and Wrestling time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  3. Pycharm 2017.1 激活服务器

    最近发现pycharm激活异常困难 原来的激活码 都不能用了 so 根据网上 教程 自己建了激活服务器 尝试可用服务器 20170504 测试发现 给需要域名 http://www.05nb.com: ...

  4. 每天一个linux命令(5):in命令

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在 ...

  5. Java 编程下字符串的 16 位、32位 MD5 加密

    package cn.sunzn.md5; import java.security.MessageDigest; import java.security.NoSuchAlgorithmExcept ...

  6. dubbo超时重试和异常处理

    dubbo超时重试和异常处理 dubbo超时重试和异常处理 参考: https://www.cnblogs.com/ASPNET2008/p/7292472.html https://www.tuic ...

  7. (精品)微信支付android端

    PayingActivity.java public void WxPay(){ // new Thread(new Runnable() { // @Override // public void ...

  8. postgresql 修改字段名称

    ALTER TABLE auth_user RENAME email TO aemail;

  9. SpringBoot使用AutoConfiguration自定义Starter

    https://segmentfault.com/a/1190000011433487

  10. JD 题目1040:Prime Number (筛法求素数)

    OJ题目:click here~~ 题目分析:输出第k个素数 贴这么简单的题目,目的不清纯 用筛法求素数的基本思想是:把从1開始的.某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉.剩下 ...