跟着刚哥梳理java知识点——异常(十一)

2023-11-09 18:20

本文主要是介绍跟着刚哥梳理java知识点——异常(十一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

异常:将程序执行中发生的不正常情况(当执行一个程序时,如果出现异常,那么异常之后的代码就不在执行。)

java.lang.Throwable:异常的超类

1、Error:java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。一般无法通过编写代码处理。

2、Exception:因编码错误导致的一般性问题,可以使用针对性的代码进行处理。

  ① 编译异常:在编译期间会出现的异常,即在IDE环境中出现了红色的波浪线。

  ② 运行异常:在运行期间出现的异常。

处理异常

1、try catch finally

  ① 可以有多个catch语句,try中抛出的异常类对象从上往下去匹配catch中异常类型一旦满足就执行catch中的代码。

  ② 如果用了进到了catch处理了异常,那么后面的代码还是执行的。

  ③ finally不管有没有异常永远都会被执行,即使有return语句。

  ④ 如果在catch中又发生了异常,那么依然还会抛出异常。

  笔试题一:

 1 public class Main {
 2     public static void methodA() {
 3         try {
 4             methodB();
 5             System.out.println("a1");
 6         } catch (Exception ex) {
 7             System.out.println("a2");
 8         } finally {
 9             System.out.println("a3");
10         }
11         System.out.println("a4");
12     }
13 
14     public static void methodB(){
15         try {
16             int a=  1/0;
17             System.out.println("b1");
18         } catch (Exception ex) {
19             System.out.println("b2");
20         } finally {
21             System.out.println("b3");
22         }
23         System.out.println("b4");
24     }
25     public static void main(String[] args) {
26         Main.methodA();
27     }

输出结果:b2 b3 b4 a1 a3 a4

 

2、throws

try catch如果捕获到了异常,即使写了thorws,其实是不其作用的,因为catch已经处理了异常,没异常了还往外抛什么啊。

 1 class Person {
 2     void sleep() throws NullPointerException {
 3 
 4     }
 5 }
 6 
 7 class Student extends Person {
 8     void sleep() throws Exception {
 9 
10     }
11 }

编译错误,父类向子类抛出的异常的范围必须相等或越抛越小。

1 public static void A() throws ArithmeticException {
2         B();
3     }
4     public static void B() throws Exception {
5         throw new ArithmeticException();
6     }
7     public static void main(String[] args) throws Exception {
8         Main.A();
9     }

编译错误,向上抛异常的范围必须相等或越来越大。

  

 

 

转载于:https://www.cnblogs.com/hzg110/p/6597812.html

这篇关于跟着刚哥梳理java知识点——异常(十一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/377810

相关文章

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

SpringBoot实现动态插拔的AOP的完整案例

《SpringBoot实现动态插拔的AOP的完整案例》在现代软件开发中,面向切面编程(AOP)是一种非常重要的技术,能够有效实现日志记录、安全控制、性能监控等横切关注点的分离,在传统的AOP实现中,切... 目录引言一、AOP 概述1.1 什么是 AOP1.2 AOP 的典型应用场景1.3 为什么需要动态插

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma