try后面一定要有catch吗

liuzuowei007 liuzuowei007 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如果我不考虑异常丢失的情况下
还有别的限制要求try后面一定要跟catch吗
请看下面两段代码

int i = 1;
try
{
i = 2;
return i;
}

finally
{
i = 3;
System.out.println("finally block executed");
}
//执行结果是
//finally block executed
//2
//间接证明了finally在return的前面执行


然而加上catch之后

int i = 1;
try
{
i = 2;
return i;
}catch(Exception e){

}finally
{
i = 3;
System.out.println("finally block executed");
return i;
}
//不但编译通不过了而且结果完全不同
//结果是
//finally block executed
//3
//这样的话finally是在return后面执行


两段程序的执行结果完全不一样
就因为多了个catch
请教各位大牛可否给予一个比较详细的解释 感激不尽
...全文

相关推荐

评论 29
收藏 已收藏
分享
返回顶部
liuzuowei007
Java SE 62,620 成员 307,251 内容