2026-03-17 02:47:16
在Java中,try-catch-finally 是处理异常的核心机制,用于捕获运行时错误并确保资源释放。以下是详细用法说明:
1. 基本语法结构try { // 可能抛出异常的代码} catch (ExceptionType1 e1) { // 处理异常类型1} catch (ExceptionType2 e2) { // 处理异常类型2} finally { // 无论是否发生异常都会执行的代码}2. try-catch 的基本用法示例1:捕获算术异常
try { int result = 10 / 0; // 抛出 ArithmeticException} catch (ArithmeticException e) { System.out.println("算术异常: " + e.getMessage());}示例2:多catch处理不同异常
try { int[] arr = new int[5]; arr[10] = 1; // 抛出 ArrayIndexOutOfBoundsException} catch (ArrayIndexOutOfBoundsException e) { System.out.println("数组越界: " + e.getMessage());} catch (NullPointerException e) { System.out.println("空指针异常: " + e.getMessage());}3. finally 块的作用示例:关闭文件流
FileInputStream fis = null;try { fis = new FileInputStream("data.txt"); int data = fis.read();} catch (IOException e) { System.out.println("IO异常: " + e.getMessage());} finally { if (fis != null) { try { fis.close(); // 确保流被关闭 } catch (IOException e) { System.out.println("关闭流失败: " + e.getMessage()); } }}4. 执行顺序与注意事项try块发生异常 → 跳转到匹配的catch块。
catch块执行完毕后 → 执行finally块。
若try或catch中有return,finally会在方法返回前执行。
避免在finally中使用return:会覆盖try/catch的返回值,导致逻辑错误。
资源释放优先:确保finally中释放的资源不会因异常而遗漏。
掌握此机制可显著提升程序健壮性,尤其在文件、网络、数据库等外部操作中。