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; }

  • 相关阅读:
    梯度下降(Gradient Descent)
    Positioning-Based Photo Retrieval
    NTU Long-Term Positioning Dataset
    Pycharm导入tabula模块包
    MySQL学习笔记20
    MySQL学习笔记17-19
    Android studio 报错AAPT2 error
    MySQL学习笔记13-16
    MySQL学习笔记 8-12
    机器学习十大算法
  • 原文地址:https://www.cnblogs.com/Deters/p/11168455.html
Copyright © 2011-2022 走看看