个性化阅读
专注于IT技术分析

Java finally块

本文概述

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

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

Java finally块遵循try或catch块。

Java finally块

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


为什么最后使用Java

  • Java中的finally块可用于放置“清理”代码, 例如关闭文件, 关闭连接等。

使用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...

情况二

让我们看一下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块。

赞(0)
未经允许不得转载:srcmini » Java finally块

评论 抢沙发

评论前必须登录!