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的值发生异常