zoukankan      html  css  js  c++  java
  • 有return的情况下,try-catch-finally的执行顺序

    1. 当try和finally中都有return语句时,系统执行到try语句块中的return时,会先检测finally语句块有没有执行,

    如果没有执行,直接去执行finally语句块

    try {
      System.out.println("try语句块执行");
      return;
    } catch (Exception e) {
      System.out.println("catch语句块执行");

      return;
    } finally {
      System.out.println("finally语句块执行");
      return;
    }

    2. 当我们运行程序时,不排除JVM会突然退出,所以当在try语句块中执行System.exit(1)语句时,JVM会强制退出,这样,finally语句块不会执行

    try {
      System.out.println("try语句块执行");
      System.exit(1);
    } catch (Exception e) {
    System.out.println("catch语句块执行");
      return;
    } finally {
      System.out.println("finally语句块执行");
      return;
    }

    3. 还有一种情况,在发生异常时,在发生异常时,会直接执行catch语句块,异常下面的代码,都不会执行

    try {
      System.out.println("try语句块执行");
      int i = 1/0;
      System.exit(1);
    } catch (Exception e) {
      System.out.println("catch语句块执行");
      return; } finally {   System.out.println("finally语句块执行");   return; }

  • 相关阅读:
    Java输入/输出
    JSP第二天 JavaBean加强
    JSP 第一天学习
    java集合
    Github配置SSH Keys
    Android Fragment学习笔记
    Android开源资源整理
    centos终端显示字母重叠
    好用的log查看工具log2console
    .NET 日期转换
  • 原文地址:https://www.cnblogs.com/Deters/p/11168455.html
Copyright © 2011-2022 走看看