• 【JavaSe】断言 assert 到底怎么用?


    在这里插入图片描述
    上来就是重点❗❗❗
    断言(assert)语句一般用于程序不准备通过自己手动捕获异常来处理的错误。通过assert 这种形式以及其他形式捕获异常情况。一般情况下,assert语句默认关闭,需要手动打开,使用if语句简单判断一下即可,因为正常发布的代码中断言语句都不执行或不起作用,非常容易错误地使用了断言。

    • 启用/关闭断言语句:

    • 找到VM arguments文本框 ,输入-ea java -ea开启,输入-da java -da关闭(默认为关闭状态

    博主在这里使用的是IEAD进行演示:输入的是-ea

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • 语法格式:
      1. assert condition:
        condition是一个必须为真(true)的表达式,如果表达式结果为true,程序正常运行,如果为false,则抛出一个AssertionError对象,这个对象继承Error对象,而Error继承Throwable 对象,而Throwable 继承Object(所有类的父类);
        Error是Throwable子类,表示严重的问题;Throwable类是Java语言中所有错误和异常的Throwable类,实例的对象由Java虚拟机抛出,或者可以由Java throw语句抛出
        在这里插入图片描述
     public static void main(String[] args) {
            String a = "abc";
            myPrint(a);
        }
        public static void myPrint(String a){
           //如果传的参数不为空,则打印输出,
           //否则抛出一个AssertionError异常
            assert (a != null);
            System.out.println(a);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 2.assert condition:expr:
      这里的condition同上面的一个意思,冒号后面的expr是一个表达式,一般用于断言失败后,手动传入一个错误信息/提示信息给AssertionError构造函数,如果断言为假,则输出该表达式。
      在这里插入图片描述
     public static void main(String[] args) {
            String a = "abc";
            myPrint(a);
        }
        public static void myPrint(String a){
           //如果传的参数不为空,则打印输出,
           //否则抛出一个AssertionError异常,
           //并输出 该变量为null
            assert (a != null):"该变量为null";
            System.out.println(a);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    记得三连喔~ 👍👍🏻👍🏿
    记得三连喔~ 👍👍🏻👍🏿
    记得三连喔~ 👍👍🏻👍🏿

  • 相关阅读:
    照着这本“书”,3年量产自动驾驶卡车
    获取Visual Studio所用MSVC编译器版本:_MSC_VER数值
    Debian11.5安装Podman并以多容器方式搭建LEMP环境
    C++模板编程(7)---实际运用模板:模板追踪器(tracer)
    软考高级系统架构师冲关预测
    hbuilderx ios自定义基座真机测试
    k8s集群安装部署实战详细手册
    Windows环境下的ELK——搭建环境(1)
    小乌龟操作Git
    “智能合约审计:确保区块链应用安全的关键步骤“
  • 原文地址:https://blog.csdn.net/Original0/article/details/126836160