Java快速入门 知识精简(6)异常处理

embedded/2024/10/17 16:15:17/

异常处理

异常:指的是程序在执行过程中。出现的非正常的情况,如果不处理最终会导致JVM的非正常停止。

为保证程序正常执行,代码必须对可能出现的异常进行处理

说明:

1)异常指的并不是语法错误;语法错了,编译不通过,不会产生字节码文件,根本不能运行。

2)异常也不是指逻辑代码错误,而没有得到想要的结果;例如:求a与b的和,你写成了a-b;

3)充分发挥异常的优点,可以提高程序的可读性 可靠性和可维护性

分类:按程度

1)Error:虚拟机也无法处理的严重错误

2)Exceptioin:一般性问题, 通常可以处理

异常组合:

try{// 可能会抛出异常的代码;
}catch(Exception a){throw new Exception(a);     // throw 抛出异常
}
​​
try{// 可能会抛出异常的代码;
}catch( ){System.out.println("这里有一个异常!");
}finally{// 最后一定会执行的代码;
}
​​
try{// 可能会抛出异常的代码;
}finally{// 最后一定会执行的代码;
}
// throws 将异常抛出; 不在方法中处理异常,将异常处理的责任传递给方法的调用者public void myMethod() throws Exception {// ...if (someCondition) {throw new Exception("An error occurred");}// ...
}

JUnit单元测试

对一部分代码进行测试检查,确保代码的正确性

步骤:

①选中当前工程 -> 右键 -> build path - add libraries - JUnit 4 - 下一步。

②创建Java类,进行单元测试。

Java类要求:此类是public 类,此类公共的无参构造器。

③此类中声明单元测试方法

单元测试方法:方法的权限是public,没有返回值,没有形参。

④此单元测试方法上需要声明注解:@Test 并在单元测试类中导入test包。

// 例:
import org.junit.test;
​
public class JUnitTest{
​@Testpublic void testEquals( ){// 方法体}
}
import org.junit.test;
​
public class JUnitTest{
​@Testpublic void testEquals( ){// 方法体}
}

⑤声明好单元测试方法后,就可以在方法体内测试相关的代码。

⑥写完代码以后,左键双击单元测试方法名,右键:run as - JUnit Test

说明:

如果执行结果没有任何异常,绿色条形框

如果执行结果出现异常,红色条形框


断点调试

调试程序方式:

System.out.println();

Debug 调试

运行编写好的程序时,可能出现的几种情况:

情况1:没有任何bug,程序执行正确!如果出现如下的三种情况,都有必要使用debug

情况2:运行以后,出现了错误或异常信息。但是通过日志文件或控制台,显示了异常信息的位置。

情况3:运行以后,得到了结果,但是结果不是我们想要的。

情况4:运行以后,得到了结果,结果大概率是我们想要的。但是多次运行的话,可能会出现不是我们想要的情况。比如:多线程情况下,处理线程安全问题

Debug的步骤

Debug(调试)程序步骤如下:

1)添加断点

  • 在源代码文件中,在想要设置断点的代码行的前面的标记行处,单击鼠标左键就可以设置断点;

  • 在相同位置再次单击即可取消断点。

2)启动调试

  • IDEA提供多种方式来启动程序(Launch)的调试,分别是通过菜单(Run –> Debug)、图标 “绿色臭虫” 等

3)单步执行

4)观察变量和执行流程,找到并解决问题

调试操作

IDEA断点调试

操作按钮说明作用快捷键
Step into跳入进入当前行所调用的方法中F7
Step over跳过执行完当前行的语句,进入下一行F8
Step out跳回执行完当前行所在的方法,进入下一行Shift + F8
evaluate expression计算表达式查询表达式(变量、方法)Alt + F8
Resume Program恢复进入下一个断点F9
Run to Cursor直接跳到光标处继续调试Alt + F9
Force Step Into跳入可以进入一个核心类库方法Alt +Shift + F7
View Breakpoints查看查看所有断点Ctrl + Shift + F8
Mute Breakpoints使得当前代码后面所有的断点失效, 执行到底
Stop结束结束调试Ctrl + F2
  • 在Debug过程中,可以实时下断点

行断点

断点打在代码所在行的标记行位置。

执行到此行时,会停下来。

方法断点

断点打在方法开始所在的行,当进入方法时,断点可以被唤醒。

也可以设置在方法退出时,断点也被唤醒

在多态的场景下,在父类或接口的方法上打断点,会自动调入到子类或实现类的方法

字段断点

断点打在字段所在的行

在类的属性声明上打断点,默认对属性的修改操作进行监控

条件断点

断点打在条件语句所在的行

只有在指定的条件为真时才会触发暂停,可以用于调试只在特定条件下出现的问题。

异常断点

断点打在异常语句所在的行

对异常进行跟踪。如果程序出现指定异常,程序就会执行断点,自动停住。


http://www.ppmy.cn/embedded/105522.html

相关文章

【2024-2025源码+文档+调试讲解】微信小程序的城市公交查询系统

摘 要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统城市公交查询管理采取了人工的管理方法…

解决AutoDL远程服务器训练大模型的常见问题:CPU内存不足与 SSH 断开

在使用远程服务器(如 AutoDL)进行深度学习训练时,通常会遇到一些常见问题,比如由于数据加载导致的内存消耗过高,以及 SSH 连接中断后训练任务被迫停止。这篇文章将介绍我在这些问题上遇到的挑战,并分享相应…

Spark-Yarn模式如何配置历史服务器

在Spark程序结束之后我们也想看到运行过程怎么办? Yarn模式下,通过以下步骤配置历史服务器即可: mv spark-defaults.conf.template spark-defaults.conf修改spark-default.conf 文件,配置日志存储路径 spark.eventLog.enabled true spark.…

Spring Boot详解

1.基本概念: Spring Boot 是一个用于简化 Spring 应用开发的框架。它通过提供预配置的环境和一组开箱即用的功能,帮助开发人员快速构建和部署基于 Spring 的应用程序。 2.特点: (1).简化配置: Spring Boot 提供了一系列的默认配置&#xff0…

MASt3R:从3D的角度来实现图像匹配(更新中)

Abstract 图像匹配是 3D 视觉中所有性能最佳算法和pipeline的核心组件。 然而,尽管匹配从根本上来说是一个 3D 问题,与相机姿态和场景几何结构有内在联系,但它通常被视为一个 2D 问题。因为匹配的目标是建立 2D 像素字段之间的对应关系&#…

利用Spring Boot实现服务降级与熔断机制

利用Spring Boot实现服务降级与熔断机制 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在分布式系统中,服务降级和熔断是保证系统稳定性的重要机制。服务降级是指在系统负载过高或…

1p-frac:已开源,仅用单张分形图片即可媲美ImageNet的预训练效果 | ECCV 2024

分形几何是一个数学分支,主要应用于作图方面。一般来说,分形经过无数次递归迭代后的结果。比如取一条线段,抹去中间的三分之一,会得到长度是原三分之一长的两条线段,中间隔着相同长度的间隙。然后重复这个动作&#xf…

云计算实训41——部署project_exam_system项目(续)

# 创建脚本,可以在java环境中运行任何的jar包或者war包#!/bin/bash/usr/local/jdk/bin/java -jar /java/src/*.?ar一、思路分析 (1)nginx 1、下载镜像,将本地的dist项目的目录挂载在容器的/usr/share/nginx/html/ 2、启动容器 …