Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 2.6 异常处理(try-catch-finally)

2.6 异常处理(try-catch-finally)

异常的概念

异常(Exception)是程序在运行过程中出现的非正常情况,它会中断程序的正常执行流程。Java通过异常处理机制提供了一种结构化和可控的方式来处理运行时错误。

异常的分类

Java中的异常分为两大类:

  1. Checked Exception(受检异常):编译器强制要求处理的异常(如IOException、SQLException)。
  2. Unchecked Exception(非受检异常):包括运行时异常(RuntimeException及其子类)和错误(Error及其子类),编译器不强制处理。

try-catch-finally 结构

try {
    // 可能抛出异常的代码块
} catch (ExceptionType1 e1) {
    // 处理 ExceptionType1 类型的异常
} catch (ExceptionType2 e2) {
    // 处理 ExceptionType2 类型的异常
} finally {
    // 无论是否发生异常都会执行的代码块(常用于资源释放)
}

关键点

  1. try块:包含可能抛出异常的代码。
  2. catch块:捕获并处理特定类型的异常。多个catch块时,子类异常需排在父类异常之前。
  3. finally块:无论是否发生异常都会执行,通常用于关闭文件、数据库连接等资源清理操作。

示例代码

public class ExceptionDemo {
    public static void main(String[] args) {
        try {
            int result = 10 / 0; // 抛出 ArithmeticException
            System.out.println("结果:" + result);
        } catch (ArithmeticException e) {
            System.err.println("算术异常:" + e.getMessage());
        } finally {
            System.out.println("finally块始终执行");
        }
    }
}

常见异常处理方式

  1. 捕获并处理:通过catch块恢复程序状态或提示用户。
  2. 重新抛出异常:在catch块中使用throw将异常传递给上层调用者。
  3. throws声明:在方法签名中使用throws声明可能抛出的异常。

最佳实践

  1. 避免空的catch块(至少记录异常日志)。
  2. 不要用异常处理替代常规流程控制。
  3. finally块中避免包含可能抛出异常的代码。
  4. Java 7+支持try-with-resources语法,可自动关闭实现了AutoCloseable的资源。

自定义异常

通过继承Exception(受检异常)或RuntimeException(非受检异常)创建自定义异常类:

class MyException extends Exception {
    public MyException(String message) {
        super(message);
    }
}

注意:异常处理是编写健壮Java程序的关键技术,合理使用可以显著提高程序的可靠性。

Last Updated:: 3/27/25, 12:48 PM