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

  • 相关阅读:
    数组
    字符对象的方法
    事件
    判断数据类型
    数据类型和变量
    语法
    快速入门
    JavaScript简介
    Spring init-method和destroy-method属性的使用
    spring3后提供了的context:property-placeholder/元素
  • 原文地址:https://www.cnblogs.com/Deters/p/11168455.html
Copyright © 2011-2022 走看看