try{
system.out.println("show.....");
System.in.read();
return;
}
catch(ioexception e)
{
system.out.println("i/o exception");}finally
{system.out.println("finally.....");
}System.out.println("................");请问执行完finally块后是执行try的return还是finally后面的语句
没有异常的话最后一句应该不会执行
异常处理完后控制不返回,而是顺着往下执行
可以实验一下
try
{
system.out.println("show.....");
throw new ioexception();//该处产生异常,跳出try块
system.out.println("After exception show....."); //该句不会被执行
return;
}
catch(ioexception e)
{
system.out.println("i/o exception");
}
finally
{
System.out.println("finally.....");
}
这种东西都问,自己写个小程序测试一下不就知道了
------------------------------
这样会理解得更深刻!
否则会执行finally后面的语句。
我记得是这样的,如果try里面的内容发生异常,进入catch里面,那么就不会执行finally后面的内容。
否则会执行finally后面的语句。
刚好说反。
1 try
2
2.1如果没有异常则是finally
2.2如果有异常则catch块最后finally块
3 如果catch或者try中有return,则先finally后再return;如果finally中也有renturn 则finally的return完了就算完了
自己写个代码片断验证一下!
finally的作用就是保证位于finally块中的代码一定运行——哦,finally里面又抛出异常的除外。