try...catch中finally子句的使用()

  本篇文章为你整理了try...catch中finally子句的使用()的详细内容,包含有 try...catch中finally子句的使用,希望能帮助你了解 try...catch中finally子句的使用。

  finally子句的使用:

  1、在finally子句中的代码是最后且一定会执行的,即使try语句块中的代码出现异常

  2、finally子句必须和try一起出现,不能单独编写

  3、finally子句出现的情况如下:

  通常finally语句块中完成资源的释放/关闭。

  

try{

 

   System.out.println("hi");

   return;

  }finally{

   System.out.println("finally");

  //注意,try和finally联合使用,没有catch也可以,但try不能单独使用

  以上代码执行顺序:

  先执行try,后执行finally,最后执行return

  

 

   注意:return语句只要执行,所在方法必然结束!

  

try{

 

   System.out.println("hi");

   //退出JVM

   System.exit(0);

  }finally{

   System.out.println("finally");

  //控制台输出:hi

  原因:finally只有在退出JVM之后,其代码才不会执行

  

 

   finally面试题:

  判断下面程序输出的结果为多少?

  

public static void main(String[] args){

 

   int result = m();

   System.out.println(result);

  public static int m(){

   int i = 100;

   try{

   return i;

   }finally{

   i++;

  

 

   答案:100

  原因:

  存在一些Java语法规则,方法体中的代码必须遵循自上而下的顺序依次执行;return语句一旦执行,整个方法必须结束。

  在以上程序中执行完int i=100之后,代码执行就到了return i;此时为return 100;此语句搁置,先执行finally,最后执行return 100;

  具体执行过程可以看代码反编译之后的结果

  

//上述代码反编译之后的结果

 

  public static int m(){

   int i=100;

   int j=i;

   i++;//finally语句确实在return i;之前执行

   return j;//return 100

   Exception exception;

   exception;

   i++;

   throw exception;

  

 

  final、finally、finalize的区别:

  final是一个关键字,表示不变的,最终的

  final int i=100;

  其中final修饰的类无法继承、修饰的方法无法覆盖、修饰的变量不能重新赋值。

  finally也是一个关键字,和try联合使用,用在异常机制中,并且finally语句块中的代码一定会执行

  finalize()是object类中的一个方法,作为方法名出现,属于标识符,这个方法是由垃圾回收器G负责调用的。

  以上就是try...catch中finally子句的使用()的详细内容,想要了解更多 try...catch中finally子句的使用的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: