idea中使用java断言——java笔记

news2024/11/16 5:50:29

在 Java 中,断言是一种用于检查代码中是否满足特定条件的机制。它可以用来确保程序在开发和测试阶段的正确性,并且可以在出现错误时提供有用的错误信息。

断言在 Java 中由关键字 assert 表示,其语法为:

assert condition;

或者

assert condition : message;

其中:

  • condition 是一个布尔表达式,代表要进行断言的条件。
  • message 是一个可选的字符串,用于在断言失败时输出自定义的错误信息。

当使用断言并且条件不满足时,会抛出一个 AssertionError 异常。

以下是一个示例,展示了如何在 Java 中使用断言:

public class AssertionExample {
    public static void main(String[] args) {
        int age = 15;
        
        // 使用断言检查年龄是否大于等于18
        assert age >= 18 : "年龄必须大于等于18";
        
        System.out.println("欢迎进入成人网站!");
    }
}

在上述示例中,我们使用断言来确保年龄大于等于18。如果年龄小于18,则断言失败,抛出 AssertionError 异常并显示指定的错误信息 "年龄必须大于等于18"

请注意,在默认情况下,Java 虚拟机在运行时会禁用断言。你可以通过在运行时添加 -ea-enableassertions 参数来启用断言。例如,使用以下命令运行示例程序:

java -ea AssertionExample

启用断言后,当条件不满足时,程序会中断并抛出 AssertionError 异常。否则,程序将正常执行。

idea启用断言:

要在 IntelliJ IDEA 中启用断言(Assertion),可以通过以下步骤进行设置:

  1. 在 IntelliJ IDEA 中打开你的 Java 项目。
  2. 点击顶部菜单栏的 “Run”(运行)。
  3. 选择 “Edit Configurations”(编辑配置)。
  4. 在弹出的窗口中,选择你要运行的 Java 应用程序的配置。
  5. 在右侧的 “VM options”(虚拟机参数)文本框中,输入 -ea-enableassertions 参数,表示启用断言。

例如,假设你的 Java 应用程序的配置名是 “MyApp”,将 -ea 添加到 “VM options” 中的示例步骤如下:

  • 运行 -> Edit Configurations -> MyApp -> Configuration -> VM options
  • 在 “VM options” 文本框中输入:-ea

完成上述操作后,你的 Java 应用程序将以启用断言的方式运行。

请注意,如果你在运行配置中已经设置了其他虚拟机参数,请确保在添加断言参数时使用正确的语法(以空格分隔多个参数)。例如,如果已经设置了 -Xmx256m 参数,你应该添加 -ea 参数,之后的结果应该是 -Xmx256m -ea

完成设置后,保存配置并再次运行你的应用程序,断言将会起作用。如果断言条件不满足,将会抛出 AssertionError 异常。

例子:

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682950.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

6.Java的JDBC编程

文章目录 🌆1. 数据库编程🌆🏯1.1数据库编程的必备条件🏯🏰1.2下载驱动包🏰⛺️1.3导入驱动包:⛺️🏭1.4编写JDBC代码🏭🗼1.4.1数据库插入操作(在idea中用Jav…

《Opencv3编程入门》学习笔记—第七章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第七章 图像变换 图像变换:即将一幅图像转变成图像数据的另一种表现形式。 一、基于OpenCV的边缘检测 OpenCV中边缘检测的各种算子和滤波器:Can…

【雕爷学编程】Arduino动手做(125)---WT588D语音模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

Linux缓冲区续集——手撕fopen、fwrite、fflush、fclose等C库函数

目录 头文件: 接下来就是设计这四个函数:Mystdio.c 重点讲一讲_fflush函数的底层实现原理: 所以数据内容的经过如下: 总结: 执行——测试写好的这4个函数: 运行结果: 修改测试代码&#xff…

ASEMI快恢复二极管MUR80100PT功能和应用实用指南

编辑-Z MUR80100PT是一种高性能、超快恢复二极管,设计用于各种应用,包括电源、逆变器和电机控制系统。本文将提供一个全面的指南,以了解MUR80100PT的特点和应用,以及它在提高电子设备的效率和可靠性方面的重要性。 MUR80100PT的特…

使用vite创建vue3、react项目

一、使用vite需要的环境 node: 14.18 , 16 vite官网:https://cn.vitejs.dev/guide/ 如上图、官网上明确给出了提醒,要使用vite搭建项目,需要node版本在14.18 二、使用vite创建vue3项目 1. 使用命令启动vite创建项目 使用 NPM: $ npm cr…

开始使用Dotnetty高性能网络库进行网络通讯

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不是…

深度:激光和光纤诞生记

光子盒研究院出品 导读:20世纪50年代以来,科技领域掀起了一场光学革命,激光和光纤的诞生,带来了革命性突破。事实上,激光和光纤的诞生也是第一次量子革命的范畴,因为这些技术的发展是基于对量子规律的观测和…

Java集合之LinkedList详解

Java集合之LinkedList 一、LinkedList类的继承关系1. 基类功能说明1.1. Iterator:提供了一种方便、安全、高效的遍历方式。1.2. Collection:为了使ArrayList具有集合的基本特性和操作。1.3. Queue: LinkedList是一种队列(Queue)数…

I/O error on POST request for “...“ PKIX path building failed的解决办法

异常: 项目中需要用RestTemplate调三方接口,url是https开头加密的。postman可以调通,代码提示没有证书,具体如下: [ERROR][2023-06-25 10:41:16,574][com.peraglobal.restInterface.controller.PLMController]I/O err…

MySQL如何在Centos7环境安装:简易指南

目录 前言 一、卸载不要的环境 1.检查本地MySQL是否正在运行 2.停止正在运行的MySQL 二、检查系统安装包 三、卸载这些默认安装包 1.手动一个一个卸载 2.自动卸载全部 四、获取mysql官方yum源 五、安装mysql yum源,对比前后yum源 1.安装前 2.安装中 3.…

MySQL进阶SQL语句之函数运用

目录 1.select(显示表格中一个或数个字段的所有数据记录) 2.distinct(不显示重复的数据记录) 3.where(有条件查询) 4.and 、or(且、或) 5. in(显示已知的值的数据记…

浅谈单线程和多线程的异同

前两天有个面试,面试官问了我一个单线程和多线程的问题,情境如下: 面试官:你对单线程和多线程有什么看法? 我: 面试官: 我: 面试官: 我 现在先让我们来了解一下进程…

WS协议—介绍及原理

举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。 WebSocket 协议在2008年诞生,2011年成为国际标准。所有浏览器都已经支持了。它的最大特点就是&…

ms17_010(永恒之蓝)漏洞复现详细教程

如题,这是个漏洞复现的详细教程,本教程针对的系统是Windows7操作系统,其他系统请自行测试。 备注:教程会很详细,讲解会很明白,一文可以解决你的常见困难。 测试环境 kalilinux 192.168.1.109 (…

Java设计模式之结构型-装饰器模式(UML类图+案例分析)

目录 一、基本概念 二、角色设计 三、代码实现 案例一 案例二 四、总结 一、基本概念 装饰器模式是指不必在改变原有的类和不使用继承的情况下,动态扩展一个对象的功能。 二、角色设计 角色描述抽象构件是一个接口或者抽象类,定义我们最核心的…

科技云报道:边缘计算步入“黄金年代”

科技云报道原创。 当前时点,AI大模型已经站在了从“玩具”向“工具”快速演化的关键迭代期。如何让大模型渗透进入各类垂直场景,如何更低成本的使用大模型,如何让更多场景与用户接触AI,成为了发展的下一个重点。 在AI向实际场景…

大数据应用——总结与反思

1.谈谈你对大数据行业的认识,目前对应的大数据岗位有哪些?每种岗位需要掌握哪些技能水平?目前自己的差距在哪里? (1)概述 对于大数据行业的认识,我的理解是,大数据是指海量数据&…

8种常见的SQL错误用法

前言:MySQL在2016年仍然保持强劲的数据库流行度增长趋势。越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来。但也存在部分客户在使用MySQL数据库的过程中遇到一些比如响应时间慢,CPU打满等情况。现将《Apsar…

Dumuz同步微信通讯录及常见问题

在Dumuz工具中,【微信通讯录同步】主要功能是从当前登录的微信上下载通讯录相关成员数据。 第1步: 打开应用【微信-消息批量发送】,在工具栏中点击【微信通讯录】如下图所示: 第2步: 进入【微信通讯录】 对话框&#…