找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1788

积分

0

好友

241

主题
发表于 2025-12-25 04:05:35 | 查看: 28| 回复: 0

Java 中,Error 和 Exception 是异常处理机制的两个核心类,它们都继承自 Throwable 类。关键区别在于,异常(Exception)通常可以被程序捕获和处理,而错误(Error)则往往无法恢复,可能导致 JVM 终止运行。

Error和Exception关系图

Error

Error 表示无法处理的严重问题,通常与系统资源或 JVM 内部错误相关,例如 OutOfMemoryError。当这类错误发生时,JVM 通常会选择终止程序,因此在编程中我们一般不需要主动处理它们。

Exception

Exception 类及其子类代表程序运行过程中可以捕获和处理的异常情况,通常与应用程序逻辑相关,如输入不合法、文件访问失败或网络故障。常见例子包括 NullPointerException、IndexOutOfBoundsException 和 ClassCastException。

Exception 主要分为两类:受检异常(checked exceptions)非受检异常(unchecked exceptions)

Exception分类图

1. 受检异常(Checked Exceptions)

编译器强制要求处理或声明的异常,例如 IOException。在编写代码时,必须使用 try-catch 块捕获或通过 throws 关键字声明,否则编译会失败。

示例代码:

public void readFile() throws IOException {
    FileReader file = new FileReader("somefile.txt");
    BufferedReader fileInput = new BufferedReader(file);
    // 其他代码
}

2. 非受检异常(Unchecked Exceptions)

编译器不强制处理的异常,如 NullPointerException 或 ArrayIndexOutOfBoundsException。尽管无需在编译时声明,但在编写健壮代码时,预防和处理这类异常仍然非常重要。

示例代码:

public class NullPointerExample {
    public static void main(String[] args) {
        String text = null;
        try {
            int length = text.length(); // 这里会抛出 NullPointerException
        } catch (NullPointerException e) {
            System.out.println("Caught NullPointerException: " + e.getMessage());
        }
    }
}

理解 Error 和 Exception 的区别对于提升代码稳定性和应对技术面试都至关重要,有助于在开发中合理设计异常处理策略。




上一篇:ChemOntology化学本体论框架:编码人类化学直觉,加速AFIR反应路径搜索并降低计算成本
下一篇:基于Nuxt4与Docker构建的个人图床系统EasyImg:功能详解与一键部署指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-10 18:36 , Processed in 0.314484 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表