异常与junit


异常
    为了出现小错误,程序不会崩溃,而是继续执行(写代码的逻辑错误与语法错误不是异常)(代码健壮性)(不要滥用异常处理机制)
    
    异常体系        Throwable类实现了Serializable接口
        Error
            jvm无法解决,jvm内部错误/资源耗尽等,【栈溢出】,【内存溢出】,程序会崩毁
        Exception
            空指针异常,读取不存在的文件,网络连接中断等,可以解决
            运行时异常
                java.lang.RuntimeException及其子类
                运行时异常编译器不要求强制处理,一般是程序员逻辑错误,要自己避免其出现
                运行时异常可以不做处理,全处理影响效率与可读性(编译器检测不出来)
                【要知道的常见异常】
                    空指针异常,数学运算异常(整数/0等),数组索引越界异常,类型转换异常,
                    数据格式不正确异常(字符串转数字可能抛)
            编译时异常
                编译时异常编译器必须处理(编译器可以检测出来),用try-catch或throws
                【要知道的常见异常】
                    找不到文件异常,找不到类异常,克隆异常
                    操作数据库查询表,操作文件,到了末尾发生异常,IO异常,参数异常
    异常处理
        try-catch-finally
            捕获-自行处理,finally可没有
            idea先选中代码,再ctrl+alt+t选中try-catch
            注意:
                异常发生,异常后面代码不会执行,而是进入catch块
                异常不发生,catch块不会执行
                无论如何finally都会执行(底层是有2部分的)
                try-catch-finally后面的程序继续执行
                多个catch,编译要求子类异常写在前面,父类写在后面(因为父类写前面,后面的catch没有意义)
                可以有try-finally,不捕获,出现异常会直接崩,但是finally会执行【执行一段代码,不管发生什么,都要执行一段逻辑】
            应用:让一个用户输入整数,不是,就一直输入  解决: while内try-catch     try最后break
        try-with-resource是专门用于资源引用的异常处理
            
        throws
            将异常抛出,交给方法调用者处理,最上面是jvm,jvm直接打印异常,中断程序
            throws的类型可以是父类,也可以是多个
            运行时异常没有处理,默认就是throws(编译异常必须处理的)
        
        选一个就行,都写就没有必要了        
        子类重写父类方法,所要抛出的异常,要么与父类相同,要么是其异常子类【子类完全可以代替父类的】
            
    自定义异常
        自己设计异常类
        继承Exception,那么就是编译异常
        继承RuntimeException,那么就是运行异常(一般是这个,利用默认throws,比较方便)
        应用:要求接收Person年龄在18-120,否则抛出异常
    
    throw与throws
        throws  异常处理的一种方式           方法声明处        后面跟异常类型
        throws    手动生成异常对象的关键字    方法体中        后面跟异常对象
    
junit单元测试框架
        直接运行/debug方法,不用写到main内
        
        加@Test注解到方法上
        alt+enter注解,导入依赖,一般是5.4.2版本
        还可以debug单个方法
        
        junit测试类,相对路径从模块名开始算的
    
    //测试:黑盒测试 看不到代码,给参数输入,看输出是否达到预期
        //      白盒测试 关注程序执行的具体流程 考虑代码是否严谨 算法是否高效等
        
        //junit单元测试:白盒测试的一种
        //    使用:1定义一个测试用例(测试类)     建议 类名 被测试类名+Test   测试用例所在包名建议  xxx.xxx.test
        //        2定义测试方法 可以独立运行的方法 建议 方法名 test+测试方法名 返回值建议 void 参数列表建议 空参
        //        3给测试方法加@Test注解  需要导入junit依赖
        //        判定:因为输出结果一般看不出其测试性 所以一般不需要输出 用控制台判断 红色 失败  绿色 成功
        //            需要输出判断用断言  Assert 类静态方法 assertEquals(期望值,结果值) 方法
        //        对于重复操作:如IO中流的申请,释放,用注解定义方法 junit4版本
        //            @before 用于资源申请,所有测试方法(非测试方法?) 在执行前都会先执行这个方法 一般注解init()方法
        //            @after 用于资源释放,在执行测试方法后执行 测试方法报错,两个方法 尤其是close方法还是会执行  一般注释close()方法
        //        junit5用@beforeeach与aftereach
        //        注意:这三个方法(before,test,after【都】必须是public且不能加static,否则编译不报错,但是junit不会运行

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

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

相关文章

关于rocketMQ踩坑的那些事

在最近,我所写的这个项目需要使用到rocketMQ,为了图方便我便使用的是Windows版本的,但是在使用的过程中首先是发现无法发送消息出去,报错信息为 org.apache.rocketmq.client.exception.MQClientException: Send [3] times, still …

分布式搜索引擎elasticsearch(二)

1.DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1.DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查…

Spring Bean的生命周期各阶段详解附源码

目录 Bean的生命周期Bean定义阶段Bean实例化阶段Bean属性注入阶段Bean初始化阶段Bean销毁阶段 Bean的生命周期 bean的生命周期,我们都知道大致是分为:bean定义,bean的实例化,bean的属性注入,bean的初始化以及bean的销毁…

基础课14——语音识别

ASR 是自动语音识别(Automatic Speech Recognition)的缩写,是一种将人类语音转换为文本的技术。ASR 系统可以处理实时音频流或已录制的音频文件,并将其转换为文本。它是一种自然语言处理技术,广泛应用于许多领域&#…

【EasyX 图形编程】

EasyX 图形编程 1. EasyX 图形编程 1. EasyX 图形编程 https://easyx.cn/

卷积神经网络(CNN):乳腺癌识别.ipynb

文章目录 一、前言一、设置GPU二、导入数据1. 导入数据2. 检查数据3. 配置数据集4. 数据可视化 三、构建模型四、编译五、训练模型六、评估模型1. Accuracy与Loss图2. 混淆矩阵3. 各项指标评估 一、前言 我的环境: 语言环境:Python3.6.5编译器&#xf…

抖音小店商品卡流量怎么玩?新手如何实现爆单?实操详解!

我是电商珠珠 相信各位都在网上看到过商品卡流量,主要由抖音商城推荐两部分组成。 而抖音平台为了鼓励商家去主推抖音商品卡流量玩法,还专门推出了商品卡免佣活动,具体的玩法我在之前的文章中分享过,这里就不具体说了。 想要获…

VQD视频质量诊断服务/图像质量诊断/视频流质量诊断/传统方法与深度学习结合的视频质量诊断

随着平安城市、大安防的发展,监控摄像机数量的不断增加,给监控系统的维护工作带来了新的挑战。如何及时了解前端视频设备的运行情况,发现故障并检测恶意遮挡与破坏的不法行为已成为视频监控系统运行的首要迫切问题。对于成千上万个监控摄像机…

TCP 半连接队列和全连接队列

在 TCP 三次握手的时候,Linux 内核会维护两个队列,分别是: 半连接队列,也称 SYN 队列; 全连接队列,也称 accept 队列; 服务端收到客户端发起的 SYN 请求后,内核会把该连接存储到半连…

Matlab中文注释在Linux中乱码解决

Linux for Matlab中文注释乱码 Linux for Matlab中文注释乱码(亲测有效) 中文注释乱码的原因是windows下的m文件采用的是gbk编码,只要将所有的m文件转成 utf8文件,显示就正常了 // 查看支持的语言 enca --list languages// 转化为…

java 多种验证码

java 多种验证码 1.SpringBoot 引入jar包2. java 导入jar包3. 代码4. 效果图 1.SpringBoot 引入jar包 <dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version> </dep…

Spring Boot中使用Swagger

1. 启用Swagger 1.1 启用注解扫描和文档接口 直接在POM文件引入依赖 <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version> </dependency>1.2 启动swagger-u…

【Windows下】Eclipse 尝试 Mapreduce 编程

文章目录 配置环境环境准备连接 Hadoop查看 hadoop 文件 导入 Hadoop 包创建 MapReduce 项目测试 Mapreduce 编程代码注意事项常见报错 配置环境 环境准备 本次实验使用的 Hadoop 为 2.7.7 版本&#xff0c;实验可能会用到的文件 百度网盘链接&#xff1a;https://pan.baidu…

Shopee过期的折扣活动如何删除?Shopee促销商品如何下架?——站斧浏览器

商家们可以轻松删除虾皮过期活动以及下架促销商品&#xff0c;保持店铺的整洁和顾客的购物体验。那么shopee过期的折扣活动如何删除&#xff0c;shopee促销商品如何下架。 Shopee过期的折扣活动如何删除&#xff1f; 在删除虾皮过期活动时&#xff0c;商家们需要遵循以下步骤…

Deployment脚本部署Tomcat集群:外部访问、负载均衡、文件共享及集群配置调整

文章目录 前置知识一、Deployment脚本部署Tomcat集群二、外部访问Tomcat集群三、利用Rinted对外提供Service负载均衡支持1、创建服务2、端口转发工具Rinetd3、定义jsp文件查看转发到哪个节点 四、部署配置挂载点五、基于NFS实现集群文件共享1、master2、node3、验证 六、集群配…

Linux 进程

文章目录 进程定义进程的描述查看进程方法进程状态进程优先级进程相关概念补充 进程定义 大多数的说法&#xff1a;进程是计算机中正在运行的程序的实例。它是操作系统对程序的一种抽象&#xff0c;用于管理和调度程序的执行。 个人理解: 从OS(操作系统)开始说起&#xff0c;…

用户态和内核态

实际上任何Linux发行版(Centos/RedHat....)&#xff0c;其系统内核都是Linux。我们的应用都需要通过Linux内核与硬件交互。为了避免用户应用导致冲突甚至内核崩溃&#xff0c;用户应用与内核是分离的&#xff1a; 进程的寻址空间会划分为两部分&#xff1a;内核空间、用户空间。…

记一次引入低版本包导致包冲突,表现为NoClassDefFoundError的故障

简而言之&#xff0c;因为参考别的项目处理excel的代码if(org.apache.poi.hssf.usermodel.HSSFDateUtil.isCellDateFormatted(cell)) &#xff0c;为了使用这个HSSFDateUtil类我引入了依赖&#xff1a; <dependency><groupId>org.apache.poi</groupId><a…

LED恒流开关调节器FP7123,提供稳定电流,提升LED产品效果!

目录 一、FP7123概述 二、FP7123功能 LED恒流开关调节器FP7123的优势不仅仅在于提供稳定的电流&#xff0c;还包括以下几个方面&#xff1a; 三、应用领域 随着科技的不断发展&#xff0c;LED照明产品已经成为人们生活中不可或缺的一部分。然而&#xff0c;LED的亮度和稳定性…

二维码智慧门牌管理系统升级解决方案:存疑地址轻松管理

文章目录 前言一、存疑地址的统一管理二、数据查询、导出和编辑功能三、提交地址审核机制 前言 随着二维码智慧门牌管理系统在企业中的广泛应用&#xff0c;地址存疑成为了一个亟待解决的问题。为了帮助企业有效管理这些存疑地址&#xff0c;我们推出了升级解决方案&#xff0…