某日产生错觉,就想写个测试证明 嵌套的try catch使用时,内层catch抛出异常能被外出catch到,进行try中不会进行下一步
public class ExceptionTest{
public static void main(String[] args) {
try {
innerFun1();
innerFun2();
}catch(Exception e) {
System.out.println("=========外层方法异常=========");
System.out.println("Messgae" + e.getMessage());
}
}
public static void innerFun1() {
try {
System.out.println("*********内部方法1执行*********");
int k = 10/0;
}catch(Exception e){
System.out.println("=========内部方法异常1=========");
throw new DataException("内部方法1抛出异常");
}
}
public static void innerFun2() {
try {
System.out.println("*********内部方法2执行*********");
int k = 10/0;
}catch(Exception e){
System.out.println("=========内部方法异常2=========");
throw new DataException("内部方法2抛出异常");
}
}
}
DataException 是自定义的运行异常 此处略过
public class DataException extends RuntimeException
以上测试打印结果如下:


本文通过一个具体的Java程序示例,详细解析了Java中异常处理机制的工作原理,特别是嵌套try-catch块如何处理异常,以及自定义异常的抛出与捕获过程。
2492

被折叠的 条评论
为什么被折叠?



