有关Java中try catch的一个问题

2025-04-28 13:08:47
推荐回答(2个)
回答1:

try{
// 申请一些资源
// 然后做一些操作
} catch (操作的时候可能出一些错) {
// 把这个错误记录下来,可能有人需要看看
// 这个时候try里面的操作已经中断无法继续了
} finally {
// 把刚才申请的资源释放掉,不然多错几次资源就没了
}

回答2:

2个都会执行b2

1. 执行b1,如果执行过程成有异常,则执行b3,不管有没有异常最后都去执行b2

2. 执行b1,如果执行过程成有异常,则执行b3,然后执行b2

其实2者3执行的效果执行是差不多的,在下面这种情况下会发现效果会不同:
如果b1里面的最后一句是return,并且执行b1期间没有异常的话,第一题执行会完b2才去执行b1的return,第二题不会执行b2,而是直接执行b1的return

finally的意思是一定会执行,请运行一下下面的例子你就知道区别了

public static void main(String[] args) {
try {
System.out.println("try");
return;
} catch(Exception e) {
System.out.println("exception");
} finally {
System.out.println("finally");
}
System.out.println("no try catch");
}