在 Java 中,我们可以在另一个 try catch 块中声明一个 try catch 块吗?
javaobject oriented programmingprogramming更新于 2025/6/12 22:04:17
是的,我们可以在另一个 try-catch 块中声明一个 try-catch 块,这称为嵌套 try-catch 块。
嵌套 Try-Catch 块
- 如果内部 try 语句t没有匹配的catch 语句来处理特定异常,则控制权将转移到下一个 try 语句catch 处理程序,该处理程序应与匹配的 catch 语句匹配。
- 这种情况持续到其中一个catch 语句成功,或者直到所有嵌套 try 语句都完成。
- 如果没有一个 catch 语句匹配,则Java 运行时系统将处理异常。
- 当使用嵌套 try 块时,将首先执行内部 try 块。内部 try 块中抛出的任何异常都将在相应的catch 块中捕获。如果未找到匹配的 catch 块,则检查外部 try 块的 catch 块,直到所有嵌套的 try 语句都用尽为止。如果未找到匹配的块,则Java 运行时环境将处理执行。
语法
try {
statement 1;
statement 2;
try {
statement 1;
statement 2;
}
catch(Exception e) {
// 捕获相应的异常
}
}
catch(Exception e) {
// 捕获相应的异常
}
.............
示例
import java.io.*;
public class NestedTryCatchTest {
public static void main (String args[]) throws IOException {
int n = 10, result = 0;
try { // 外部 try 块
FileInputStream fis = null;
fis = new FileInputStream (new File (args[0]));
try { // 内部 trty 块
result = n/0;
System.out.println("The result is"+result);
}
catch(ArithmeticException e) { // 内部 catch 块
System.out.println("除以零");
}
}
catch (FileNotFoundException e) { // 外部 catch 块
System.out.println("File was not found");
}
catch(ArrayIndexOutOfBoundsException e) { // 外部 catch 块
System.out.println("Array Index Out Of Bounds Exception occured ");
}
catch(Exception e) { // 外部 catch 块
System.out.println("Exception occured"+e);
}
}
}
输出
Array Index Out Of Bounds Exception occured
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

