try-catch-finally
一、结构:
try 块:包含可能抛出异常的代码
catch 块:捕获并处理特定类型的异常
finally 块:无论是否发生异常都会执行的代码(可选)
try {// 可能抛出异常的代码
} catch (ExceptionType1 e) {// 处理 ExceptionType1 类型的异常
} catch (ExceptionType2 e) {// 处理 ExceptionType2 类型的异常
} finally {// 无论是否发生异常都会执行的代码
}
二、处理流程:
1.程序执行 try 块中的代码
2.如果 try 块中抛出异常:
检查 catch 块是否能匹配该异常类型
按顺序匹配,执行第一个匹配的 catch 块
如果没有匹配的 catch 块,异常会向上传播
3.无论是否发生异常,finally 块都会执行
三、finally 块特点:
通常用于释放资源(如关闭文件、数据库连接等)
即使在 try 或 catch 块中有 return 语句,finally 块也会执行
如果 finally 块中有 return,会覆盖 try/catch 中的 return
public int testFinally() {try {return 1;} finally {return 2; // 实际返回2}
}