A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© eternallove 中级黑马   /  2014-4-23 00:17  /  1751 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

try{
.......
return;
}catch(Exception e){
}
finally{
db.close();
}
问:先执行try语句还先执行finally语句?

3 个回复

倒序浏览
因为finally 是一定会执行的语句,所以看情况如果两个都会执行那么try语句会先执行。
回复 使用道具 举报
小马初长成 发表于 2014-4-25 10:08
因为finally 是一定会执行的语句,所以看情况如果两个都会执行那么try语句会先执行。 ...

是不是,会有可能先执行发finally,之后再执行try,如果先执行try,return就直接终结了程序,号称最后执行的finally就执行不到了。
回复 使用道具 举报
eternallove 发表于 2014-4-26 08:42
是不是,会有可能先执行发finally,之后再执行try,如果先执行try,return就直接终结了程序,号称最后执 ...

Finally语句是起到异常处理出口的作用,用在try...catch语句的最后,无论是否出现异常(catch中的语句是否被执行),Finally中的语句都会被执行,这样可以更好的控制程序的走向。
例:
  1. import java.util.*;
  2. public class Abnormal{
  3.         public static void main(String[] args){
  4.          int a,b,c;
  5.          Scanner sc=new Scanner(System.in);
  6.         try{
  7.                  a=sc.nextInt();
  8.                  b=sc.nextInt();
  9.                  c=a%b;
  10.                  System.out.println("余数为"+c);
  11.          }
  12.          catch(Exception e){
  13.                 System.out.println("输入有误");
  14.          }  
  15.         finally{//增强了try...catch处理异常的功能
  16.                 System.out.println("程序顺利进行中");
  17.         }
  18.      }
  19. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马