try-catch 机制详解
try-catch 机制详解
try-catch 是编程中用于异常处理的关键结构,能够捕获并处理程序运行时的错误,防止程序崩溃。以下是其核心概念与使用方法:
1. 基本语法
java
try {
// 可能抛出异常的代码
} catch (ExceptionType1 ) {
// 处理 ExceptionType1 异常
} catch (ExceptionType2 e2) {
// 处理 ExceptionType2 异常
} finally {
// 无论是否发生异常,都会执行的代码
}
try 块:放置可能引发异常的代码。
catch 块:捕获并处理特定类型的异常。
finally 块(可选):执行清理操作(如关闭资源),无论是否发生异常都会执行。
2. 工作流程
执行 try 块:
如果未发生异常,跳过所有 catch 块,直接执行 finally(如果存在)。
如果发生异常,立即停止 try 块中剩余代码的执行。
匹配 catch 块:
从上到下依次检查 catch 块,找到与异常类型匹配的第一个块。
执行匹配的 catch 块中的代码。
执行 finally 块:
无论是否发生异常,finally 块都会执行(除非程序提前退出,如 System.exit())。
展开全文3. 示例代码
示例 1:捕获特定异常
java
try {
int result = 10 / 0; // 引发 ArithmeticException
} catch (ArithmeticException e) {
System.out.println("除零错误:" + e.getMessage());
} finally {
System.out.println("执行 finally 块");
}
输出:
除零错误:/ by zero
执行 finally 块
示例 2:捕获多个异常
java
try {
String str = null;
System.out.println(str.length()); // 引发 NullPointerException
} catch (NullPointerException e) {
System.out.println("空指针错误:" + e.getMessage());
} catch (Exception e) {
System.out.println("其他错误:" + e.getMessage());
} finally {
System.out.println("执行 finally 块");
}
输出:
空指针错误:Cannot invoke "String.length()" because "str" is null
执行 finall