猿教程 Logo

Java finally 块

Java finally块是用于执行重要代码的块,例如关闭连接,流等。

Java finally块总是会执行,无论异常是否被处理。

Java finally跟在try或catch块后面。


注意:如果你不处理异常,在终止程序之前,JVM会执行finally块(如果有的话)。


为什么要用java finally

  • finally在java中阻塞可以用来放置“清理”代码,如关闭文件,关闭连接等。


Java finally的使用

让我们看看java finally块可以使用的不同情况。

情况1

让我们看看java finally例子,其中不发生异常。

相关实例:

class TestFinallyBlock{
  public static void main(String args[]){
  try{
   int data=25/5;
   System.out.println(data);
  }
  catch(NullPointerException e){System.out.println(e);}
  finally{System.out.println("finally block is always executed");}
  System.out.println("rest of the code...");
  }
}

运行结果:

Output:5
       finally block is always executed
       rest of the code...

案例2

让我们来看看异常发生和不处理的java finally示例。

相关实例:

class TestFinallyBlock1{
  public static void main(String args[]){
  try{
   int data=25/0;
   System.out.println(data);
  }
  catch(NullPointerException e){System.out.println(e);}
  finally{System.out.println("finally block is always executed");}
  System.out.println("rest of the code...");
  }
}

运行结果:

Output:finally block is always executed
       Exception in thread main java.lang.ArithmeticException:/ by zero

案例3

让我们来看看异常发生和处理的java finally示例。

相关实例:

public class TestFinallyBlock2{
  public static void main(String args[]){
  try{
   int data=25/0;
   System.out.println(data);
  }
  catch(ArithmeticException e){System.out.println(e);}
  finally{System.out.println("finally block is always executed");}
  System.out.println("rest of the code...");
  }
}

运行结果:

Output:Exception in thread main java.lang.ArithmeticException:/ by zero
       finally block is always executed
       rest of the code...

规则:对于每个try块,可以有零个或多个catch块,但只有一个finally块。

注意:如果程序退出(通过调用System.exit()或引起导致进程中止的致命错误),finally块将不会被执行。


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Java/finally-block-java.html