assert断言学习

package org.test;

public class AssertTest {

	/**
	jvm 断言默认是关闭的。
	 在eclipse开启断言assert。
            在Run->Run configurations ->打开arguments选项卡,在VM argments框里填入-ea
            如果要关闭assert,则填入-da 
            使用方法:
    1:assert expression;  assert在参数expression为false才抛出异常IllegalArgumentException
    2:assert expression1:expression2;   assert在参数expression1为false才抛出异常IllegalArgumentException,同时打印expression2
	 */
	public static void main(String[] args) {
//		// 判断断言assert是否开启
//		boolean isOpen = false;  
//		assert isOpen=true; //如果开启了断言,会将isOpen的值改为true 
//		System.out.println(isOpen);//打印是否开启了断言 
		
		
		
		
		//测试1
//		assert false; 
//		System.out.println("Exception...");
		/*结果打印:
		 Exception in thread "main" java.lang.AssertionError
	at org.test.AssertTest.main(AssertTest.java:21)
后面的打印语句没有出现,直接报java.lang.AssertionError异常,说明assert的作用就是在接收的boolean值为false时,
打断程序的运行。类似自定义Exception。
		 */
		
		//测试2
		
//		Object o=null;
//		isNull(o);
		
		
		//测试3
//		Object o2=null;
//		assert true:o2;//没有打印
		
//		Object o3=null;
//		assert false:o3;
		/*
		 Exception in thread "main" java.lang.AssertionError: null
	at org.test.AssertTest.main(AssertTest.java:42)
		 */
		
//		String o4=new String("hello");
//		assert false:o4;
		/*
		 Exception in thread "main" java.lang.AssertionError: hello
	at org.test.AssertTest.main(AssertTest.java:49)
		 */
		
		
		//测试4
		String ob=null;
		String exceptionMessage=new String("object ob is null...");
		isNull(ob,exceptionMessage);
		/*
		 Exception in thread "main" java.lang.AssertionError: object ob is null...
	at org.test.AssertTest.isNull(AssertTest.java:73)
	at org.test.AssertTest.main(AssertTest.java:59)

		 */
	}
	
	public static void isNull(Object obj){
		assert obj!=null;//obj 为null时断言(因为assert在参数为false才执行异常)
		
		//或者使用异常
//		if(obj==null){
//			throw new IllegalArgumentException("IllegalArgumentException,Object is null.");
//		}
	}
	
	//重载
	public static void isNull(Object obj,Object printMessage){
		assert (obj!=null):printMessage.toString();
		//obj 为null时断言(因为assert在参数为false才执行异常),第二个参数是在打印异常时的信息
		
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值