Java finally块

本文概述

  • 为什么最后使用Java
  • 使用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=http://www.srcmini.com/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=http://www.srcmini.com/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=http://www.srcmini.com/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..."); } }

【Java finally块】立即测试
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块。

    推荐阅读