zoukankan      html  css  js  c++  java
  • 廖雪峰Java3异常处理-2断言和日志-1使用断言

    1.断言

    断言Assertion是一种程序调试方式

    • 使用assert关键字
    • 断言条件预期为true
    • 如果断言失败,抛出AssertionError,停止程序
    • 可选的断言消息,断言失败,就会抛出
    public class Main {
        static double abs(double d){
            return d >= 0 ? d : -d;
        }
        public static void main(String[] args){
            double x = abs(-123.45);
            assert x <= 0 : "x must greater than 0";
            System.out.println(x);
        }
    }
    
    # 2.断言的特点: * 断言失败时会抛出AssertionError,导致程序结束退出 * 不能用于可恢复的程序错误 * 只应该用于开发和测试阶段 * 如果我们认为一个程序是可恢复的,就不应该使用断言。 如不能用断言判断一个变量是否为空,而应该用抛出异常,在上层捕获这个异常。

    3.JVM默认关闭断言指令的,IDE使用断言

    • 给Java虚拟机传递-ea参数启用断言
    • 可以指定特定的类启用断言 -ea:com.feiyangedu.sample.Main
    • 可以指定特定的包启用断言 -ea:com.feiyangedu...

    IDEA: run - Edit Configurations,在VM options中加入-ea即可

    eclipse: Run As-Run Configurations-Arguments-VM arguments填入-ea:com.testAssertion.Main

    4.总结

    • 断言是一种调试方式,断言失败会抛出AssertionError
    • 只能在开发和测试阶段启用断言
    • 对可恢复的错误不能使用断言,而应该抛出异常
    • 断言很少被使用,更好的方法是编写单元测试
  • 相关阅读:
    腾讯云CentOS7学习
    听力词汇发音练习软件
    中缀表达式转后缀表达式
    两个升序序列的中位数
    CentOS配置静态IP
    一种简单的基于图像或激光雷达的道路(赛道)识别程序
    Win10+VS2019 配置YOLOv3
    【算法题】CCF CSP第二题练习(更新中)
    rpm的使用
    SCL
  • 原文地址:https://www.cnblogs.com/csj2018/p/10335639.html
Copyright © 2011-2022 走看看