让星星⭐月亮告诉你,Java异常分类[Throwable(Error/Exception(RuntimeException/其他异常)) 检查时异常 非检查时异常]

简介: 本文深入解析了Java异常处理机制,重点介绍了`Throwable`类及其子类`Error`和`Exception`,并通过实例代码、流程图和表格详细解释了异常的分类、区别及处理方法,帮助读者掌握异常处理的关键技巧,提升程序的稳定性和健壮性。

摘要

本文深入探讨了Java异常处理机制,特别是Throwable类及其子类ErrorException。通过详细的分类和实例代码,读者将能够理解Java中异常的分类、区别以及如何处理它们。文章还提供了流程图和表格,帮助读者更好地理解异常处理的概念。

关键词

Java, 异常处理, Throwable, Error, Exception, RuntimeException, 检查时异常, 非检查时异常

1. 引言

Java异常处理是程序稳定性和健壮性的关键。了解不同类型的异常及其处理方式对于编写高质量的Java程序至关重要。

2. Java异常分类

2.1 Throwable类

所有异常的根类,分为ErrorException两大类。

2.2 Error类

代表了JVM本身的错误,通常不可恢复。

2.3 Exception类

分为检查时异常和非检查时异常。

3. 非检查时异常(Unchecked Exceptions)

3.1 概述

包括RuntimeException及其子类,如NullPointerExceptionIndexOutOfBoundsException等。

3.2 代码示例

public class UncheckedExceptionExample {
   
    public static void main(String[] args) {
   
        int[] numbers = {
   1, 2, 3};
        System.out.println(numbers[10]); // ArrayIndexOutOfBoundsException
    }
}

4. 检查时异常(Checked Exceptions)

4.1 概述

除了ErrorRuntimeException外的其他异常,如IOExceptionSQLException等。

4.2 代码示例

import java.io.*;

public class CheckedExceptionExample {
   
    public static void main(String[] args) {
   
        try {
   
            FileReader file = new FileReader("nonexistentfile.txt");
        } catch (FileNotFoundException e) {
   
            System.out.println("File not found: " + e.getMessage());
        }
    }
}

5. 异常处理流程

5.1 概述

异常处理通常遵循try-catch-finally模式。

5.2 流程图

graph TD;
    A[开始] --> B[try块]
    B --> C{是否发生异常}
    C -->|是| D[catch块]
    C -->|否| E[finally块]
    D --> F[异常处理]
    E --> G[结束]
    F --> G

6. 异常比较

类型 是否需要捕获 常见例子
非检查时异常 不需要 NullPointerException, ArrayIndexOutOfBoundsException
检查时异常 需要 IOException, SQLException

7. 结语

通过本文的介绍,您应该对Java中的异常分类有了更深入的理解。正确处理异常是编写健壮程序的关键。

8. Excel表格展示

异常类型 是否需要捕获 常见例子
非检查时异常 不需要 NullPointerException, ArrayIndexOutOfBoundsException
检查时异常 需要 IOException, SQLException

9. 鼓励读者

希望本文能帮助您更好地理解Java中的异常处理。如果您有任何想法或经验,欢迎在评论区分享,让我们一起学习,一起进步!

10. Mermaid思维导图

image.png

目录
相关文章
|
4天前
|
Java
让星星⭐月亮告诉你,自定义定时器和Java自带原生定时器
定时器是一种可以设置多个具有不同执行时间和间隔的任务的工具。本文介绍了定时器的基本概念、如何自定义实现一个定时器,以及Java原生定时器的使用方法,包括定义定时任务接口、实现任务、定义任务处理线程和使用Java的`Timer`与`TimerTask`类来管理和执行定时任务。
15 3
|
4天前
|
Java
让星星⭐月亮告诉你,Java NIO之Buffer详解 属性capacity/position/limit/mark 方法put(X)/get()/flip()/compact()/clear()
这段代码演示了Java NIO中`ByteBuffer`的基本操作,包括分配、写入、翻转、读取、压缩和清空缓冲区。通过示例展示了`position`、`limit`和`mark`属性的变化过程,帮助理解缓冲区的工作原理。
11 2
|
3天前
|
机器学习/深度学习 算法 搜索推荐
让星星⭐月亮告诉你,Java冒泡排序及其时间复杂度计算
冒泡排序是一种简单的排序算法,通过多次遍历数组,每次比较相邻元素并交换位置,将较小的元素逐步移至数组前端。第一轮结束后,最小值会位于首位;第二轮则将次小值置于第二位,依此类推。经过 (n-1) 轮遍历后,数组完成排序。冒泡排序的时间复杂度为 O(n²),在最优情况下(已排序数组)时间复杂度为 O(n)。示例代码展示了如何实现冒泡排序。
20 1
|
4天前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
10 1
|
4天前
|
Java
让星星⭐月亮告诉你,Java synchronized(*.class) synchronized 方法 synchronized(this)分析
本文通过Java代码示例,介绍了`synchronized`关键字在类和实例方法上的使用。总结了三种情况:1) 类级别的锁,多个实例对象在同一时刻只能有一个获取锁;2) 实例方法级别的锁,多个实例对象可以同时执行;3) 同一实例对象的多个线程,同一时刻只能有一个线程执行同步方法。
5 1
Java基础异常-自定义异常
Java基础异常-自定义异常
Java基础异常-自定义异常
|
Java 编译器
Java中的异常(抛出异常、自定义异常等)
Java中的异常(抛出异常、自定义异常等)
288 1
|
Java 程序员 编译器
Java异常——throw、throws及自定义异常
Java异常——throw、throws及自定义异常
126 0
|
存储 Java 编译器
【Java】认识异常及自定义异常
【Java】认识异常及自定义异常
【Java】认识异常及自定义异常