• Tags ,
  •         
  • www.breakyizhan.com
  •    

    断言允许测试程序中所做假设的正确性。

    使用Java中的assert语句实现断言。在执行断言时,它被认为是真的。如果失败,JVM会抛出名为AssertionError的错误它主要用于开发过程中的测试目的。

    断言语句使用布尔表达式,可以在两种不同的方式来写。

    第一种方式:

    assert expression;

    第二种方式:

    assert expression1 : expression2;

    断言示例: -

    // Java program to demonstrate syntax of assertion
    import java.util.Scanner;
      
    class Test
    {
        public static void main( String args[] )
        {
            int value = 15;
            assert value >= 20 : " Underweight"; 
            System.out.println("value is "+value); 
        }
    }
    

    输出:

    value is 15

    启用断言后
    输出:

    Exception in thread "main" java.lang.AssertionError: Underweight

    启用断言

    默认情况下,断言被禁用。我们需要运行给定的代码。在Java源代码中启用断言语句的语法是:

    java –ea Test

    要么

    java –enableassertions Test

    这里,Test是文件名。

    禁用断言

    在java中禁用断言的语法是:

    java –da Test

    要么

    java –disableassertions Test

    这里,Test是文件名。

    为什么要使用断言
    程序员想知道他/她的假设是否错误的地方。

    • 确保无法访问无法访问的代码。
    • 确保评论中的假设是正确的。
               if ((x & 1) == 1)  
               {  }
               else // x must be even 
               { assert (x % 2 == 0); }
    • 确保未达到默认开关情况。
    • 检查对象的状态。
    • 在方法的开头
    • 方法调用之后。

    断言与正常异常处理
    断言主要用于检查逻辑上不可能的情况。例如,它们可用于检查代码在开始运行之前所期望的状态或在运行完成后的状态。与正常的异常/错误处理不同,断言通常在运行时被禁用。

    在哪里使用断言

    • 私有方法的论据。私有参数仅由开发人员的代码提供,开发人员可能希望检查他/她关于参数的假设。
    • 有条件的情况。
    • 任何方法开头的条件。

    哪里不使用断言

    • 不应使用断言来替换错误消息
    • 断言不应该用于检查公共方法中的参数,因为它们可能由用户提供。应使用错误处理来处理用户提供的错误。
    • 不应在命令行参数上使用断言。

     
    转载请保留页面地址:https://www.breakyizhan.com/java/6489.html