[Java]异常语句的各种写法总结

99 阅读2分钟

1. 基本的 try-catch 结构

try {
    // 可能抛出异常的代码
} catch (ExceptionType1 e) {
    // 处理 ExceptionType1 类型的异常
}

2. 带 finallytry-catch 结构

try {
    // 可能抛出异常的代码
} catch (ExceptionType1 e) {
    // 处理 ExceptionType1 类型的异常
} finally {
    // 无论是否发生异常,都会执行的代码
}

3. 多个 catch

try {
    // 可能抛出异常的代码
} catch (ExceptionType1 e) {
    // 处理 ExceptionType1 类型的异常
} catch (ExceptionType2 e) {
    // 处理 ExceptionType2 类型的异常
} finally {
    // 无论是否发生异常,都会执行的代码
}

4. 使用多异常捕获(Java 7 及以上版本)

从 Java 7 开始,可以在一个 catch 块中捕获多个异常类型:

try {
    // 可能抛出异常的代码
} catch (ExceptionType1 | ExceptionType2 e) {
    // 处理 ExceptionType1 或 ExceptionType2 类型的异常
} finally {
    // 无论是否发生异常,都会执行的代码
}

5. 只有 try-finally 结构

如果你不需要捕获任何异常,但需要确保某些代码在 try 块执行完毕后总是执行,可以使用 try-finally 结构:

try {
    // 可能抛出异常的代码
} finally {
    // 无论是否发生异常,都会执行的代码
}

6. 资源管理(Java 7 及以上版本:Try-with-resources)

从 Java 7 开始,引入了 try-with-resources 语句,用于自动管理资源(如文件、网络连接等),这些资源实现了 AutoCloseable 接口:

try (ResourceType resource = new ResourceType()) {
    // 使用资源的代码
} catch (ExceptionType1 e) {
    // 处理 ExceptionType1 类型的异常
} finally {
    // 无论是否发生异常,都会执行的代码
}

总结来说,try-catch-finally 的写法主要取决于你是否需要捕获异常、处理多个异常类型、确保某些代码总是执行,以及是否需要管理资源。根据实际需求选择合适的结构。