Java里面用try catch异常处理之后,catch之后的代码也会执行,那还要finally有什么用啊?

如题所述

如果出现异常而catch中有return关键字呢?这样catch之后的代码就不会执行到了,所以需要释放资源的代码必须放在finally中
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-08-07
finally的目的是为了保证不管有没有出错都会得到执行,特别适合于那些需要释放掉的资源的场景。追问

是的,但是如果catch捕获到这个异常了,catch之后的语句也会继续执行的。为啥不直接把释放资源的语句写在后面就好了呢,为啥非要写在finally里面

追答

你有没有想过假设没有抛出异常呢?

追问

没有异常?没有异常catch之后的代码也会执行啊

追答

public void foo(){
try{
// 执行代码
}
catch(Ex.... ){
// 要抛出异常吗? 要的话,那么后面的代码将无法执行。
}

/* 释放资源的代码...*/ 你的意思是:把释放资源这在这里?
}

追问

是的

本回答被网友采纳
相似回答