【Java】异常处理见解,了解,进阶到熟练掌握

各位读者,早安、午安、晚安!

如果您发现这篇文章对您有所启发,
不妨点赞、评论、分享,您的支持是我不断进步的动力。
也欢迎您将这篇文章推荐给更多人。

【Java】异常处理见解,了解,进阶到熟练掌握

今天我们将深入探讨Java面向对象编程中的抽象类和接口,让我们一起来看看它们是如何协同工作的。

目录

1.(throws和throw)我们选择忽略这个异常,将其向外抛出

1.1:使用throws时的注意事项

1.2:使用throw时的注意事项

2:(try-catch)我们主动捕获并处理这个异常

2.1. try块中抛出异常后,后续代码将不会执行

2.2. 如果抛出的异常类型与catch块中的类型不匹配

2.3. try块中可能抛出多个不同类型的异常

2.4:两种不推荐的异常捕获方式

3:关于“调用栈”(e.printStackTrace())

关于“调用栈”

4:finally

4:自定义异常类


第一次复习:

【Java】异常处理见解,了解,进阶到熟练掌握

在Java中,程序执行过程中出现的非正常行为被称为异常。

要理解异常,我们首先需要了解以下概念:

【Java】异常处理见解,了解,进阶到熟练掌握

从上图可以看出:

  1. Throwable:作为异常体系的根类,它有两个重要的子类,ErrorException

  2. Error:指的是Java虚拟机无法解决的严重问题,例如:JVM内部错误、资源耗尽等,典型的例子包括:

StackOverflowErrorOutOfMemoryError,一旦发生,通常无法恢复。

  1. Exception:这类异常发生后,程序员可以通过代码进行处理,使程序继续执行。例如:感冒、发烧。我们通常所说的异常就是指Exception。

异常处理的基本策略:
【Java】异常处理见解,了解,进阶到熟练掌握

关于异常的一般处理方法:

异常的种类繁多,我们需要根据不同的业务场景来决定处理方式。

对于严重的问题(如涉及金钱的场景),应让程序直接终止,以防止更严重的后果

对于不太严重的问题(大多数场景),可以记录错误日志,并通过监控系统及时通知开发人员。

对于可能恢复的问题(如网络相关的场景),可以尝试重试。

在我们当前的代码中,我们采取的是简化的第二种方式。我们记录的错误日志包含了出现异常的方法调用信息,这可以帮助我们快速定位异常发生的位置。在实际工作中,我们会采取更全面的方式来记录异常信息。

例如,在我们之前的编码实践中经常遇到的:

1:算术异常

```java
System.out.println(10/0);
```

【Java】异常处理见解,了解,进阶到熟练掌握

  1. 数组越界异常

int[] arr = {1, 2, 3};

System.out.println(arr[100]);

【Java】异常处理见解,了解,进阶到熟练掌握

3:空指针异常

```java
int[] array = null;
System.out.println(array.length);
```

![](https://

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/4563.html

(0)
LomuLomu
上一篇 2024 年 12 月 28 日
下一篇 2024 年 12 月 28 日

相关推荐

  • 使用Java高效检索Elasticsearch索引完整数据集的方法

    Java实现Elasticsearch全量数据检索方案 应用场景分析 常规查询机制 Java实现全量数据获取 技术总结 应用场景分析 Elasticsearch在设计时为了优化查询性能,默认配置下对未指定分页参数的查询请求仅返回前10条记录。但在实际业务中,我们经常需要获取符合特定条件的完整数据集。虽然可以通过设置较大的size参数临时解决问题,但随着数据规…

    2025 年 5 月 12 日
    18800
  • Discord技术架构调研(IM即时通讯技术架构分析)

    一、目标 调研 discord 的整体架构,发掘可为所用的设计思想 二、调研背景 Discord作为目前比较火的一个在线聊天和语音通信平台且具有丰富的功能。另外其 “超级”群 概念号称可支持百万级群聊 以及 永久保留用户聊天记录。探究其相关技术架构与技术实现 三、产品介绍 目前广泛使用的在线聊天和语音通信平台。最初于2015年发布,旨在为游戏社区提供一个交流…

    2025 年 1 月 12 日
    45400
  • 【Java 学习】面向程序的三大特性:封装、继承、多态

    引言 在面向对象编程的世界里,封装、继承和多态构成了核心的三大特性。本文将深入探讨这些概念,并通过Java代码示例来阐释它们的重要性和实际应用。 1. 封装 1.1 什么是封装呢? 封装是一种隐藏对象的内部状态和复杂性,只对外暴露有限接口的设计原则。就像我们日常使用的电子产品,它们将复杂的内部结构封装起来,只展示用户需要操作的部分。 在Java中,封装通过访…

    2024 年 12 月 27 日
    22300
  • Java StampedLock:实现原理与最佳实践

    Java StampedLock:实现原理与最佳实践 1. 引言 2. StampedLock概述 2.1 什么是StampedLock? 2.2 核心特性 3. StampedLock的三种模式详解 3.1 写锁(Write Lock) 3.2 悲观读锁(Pessimistic Read Lock) 3.3 乐观读(Optimistic Read) 4. …

    2025 年 1 月 6 日
    46300
  • 【GreatSQL优化器-10】find_best_ref

    【GreatSQL优化器-10】find_best_ref 一、find_best_ref介绍 GreatSQL的优化器对于join的表需要根据行数和cost来确定最后哪张表先执行哪张表后执行,这里面就涉及到预估满足条件的表数据,在keyuse_array数组有值的情况下,会用find_best_ref函数来通过索引进行cost和rows的估计,并且会找出最…

    2025 年 1 月 14 日
    39000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信