异常的处理问题

ggg4566 2012-12-17 09:23:47
学到java的异常处理机制时,对于代码的执行流程有点困惑

对于一般方法中,代码执行的流程是try{},catch{},finally{},这是无可厚非的,代码如下:
1.
try{

throw e;
}catch{
int a =0;
//throw e;
}
finally{
System.out.println("normal");
}

那么如果实在main方法中的如下代码呢?当执行catch中的代码时抛出的异常给Java虚拟机,按理他会执行虚拟机自己的处理方法,输出异常信息,然后终止程序,那么下面的Main就不会输出,但实际上,“Main”是输出的,并且接着normal后面,求解释?
2.
try{

throw e;
}catch{
// int a =0;
System.out.println("normal");
throw e;
}
finally{
System.out.println("Main");
}

...全文
109 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ggg4566 2012-12-17
  • 打赏
  • 举报
回复
也就是说,当遇到这种情况时,会先执行finally里面的语句,然后才终止程序,总之是finally必须得执行,和try,catch中包含return语句的情况差不多相同。 谢谢!
  • 打赏
  • 举报
回复
finally是异常的统一出口。。。必须执行

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧