`

finally解析

阅读更多
finally解析:

public static int inc() {
    int i;
    try{
        i = 2;
        return i;
    }catch(Exception e) {
        i = 3;
        return i;
    }finally {
        i = 4;
    }
}

该方法返回值:

正常情况返回2,异常情况下返回3,未知异常不返回任何值

注意:
1、方法本身的执行顺序是try{} - finally{} - return
2、由于虚拟机栈的执行机制,具体执行是:
执行 i = 2
把i值保存到栈(方法调用链)对应栈帧(一般对应一个方法)的本地变量表最后一个Slot(总是把return前面的,需要返回的值,保存到最后一个Slot,这里值是2)
执行 i = 4
取回本地变量表最后一个Slot值,放置到操作栈顶(这里值是2),准备返回
返回该值(栈顶值)


0
2
分享到:
评论

相关推荐

    Java中finally和return的关系实例解析

    主要介绍了Java中finally和return的关系实例解析,总结了二者的关系,然后分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

    java抛出异常与finally实例解析

    主要介绍了java抛出异常与finally实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    完全解析Java编程中finally语句的执行原理

    主要深度介绍了Java编程中finally语句的执行原理,细致讲解了finally在异常处理中的流程控制作用,需要的朋友可以参考下

    delphi解析json处理单元

    json串解析单元。简单易用,没有bug。 使用方法如下: var ResponseJson: string; Json, childJson: TlkJSONobject; begin Json := TlkJson.ParseText(ResponseJson) as TlkJsonObject; try Success := Trim...

    java面试题解析困惑之一

    java面试题解析困惑之final、finally和finalize的区别

    实例解析js中try、catch、finally的执行规则

    本文主要通过实例解析来更好的了解js中try、catch、finally的执行规则,具有很好的参考价值,下面跟着小编一起来看下吧

    使用Java XML解析器实现一个简单的XML文档操作.txt

    这个代码实现了一个简单的XML文档操作。首先导入了所需的库,然后定义了一个名为SimpleXML的类,并在...在finally块中关闭了所有的资源。由于使用了DOM解析器来访问XML文档,因此可以方便地获取和修改XML文档中的数据。

    网络获取json解析json以及子线程显示

    } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } if (connection != null) { connection.disconnect(); } } } }).start(); } ...

    java解析给定url

    HtmlParse,解析给定url中的中文字符,输出到文本文件中: url:可配置多个 输出路径:可配置 package com.lhs; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import ...

    2016年上半年软件设计师上午真题及答案解析

    新鲜出炉的 2016年上半年软件设计师上午真题及答案解析,不容错过!

    【Python】详解 try-except-else-finally 语句 —— 异常处理完全解读(上)

    目录 一、绪论 二、异常捕获 (Exception catching) 2.1 try-except 语句 2.1.1 基本用法 2.1.2 指定异常类型 2.1.3 小结 2.2 try-except-else 语句 ...不同于语法错法错误 (解析错误),调试 Python 程序时,即便语句

    Java经典面试题(答案解析)

    含基础篇,核心篇,框架篇,微服务篇 1.1.1 面向对象特征 封装,继承,多态和抽象 1、 封装 封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问...1.1.2 final, finally, finalize 的区别。。。

    Java学习题答案

    (20分) 本题三个答题点: a: 两种形式 dtd,schema b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的 根本目的) c: 两种主要方式:dom,sax.答出两种得全分,如能答出saxt,...

    Java程序设计习题(含答案解析).doc

    ( F ) 37、一个异常处理中 finally语句块只能有一个或者可以没有。(F ) 38、语句import java.applet.Applet;最后的Applet是代表类(class)。( T ) 39、类体中private修饰的变量在本类中能访问,类生成的对象也能访问...

    Python语言异常处理测试过程解析

    这篇文章主要介绍了Python语言异常处理测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 (一)异常处理 1.捕获所有异常 try: x = 5 / 0 except:...

    python 上下文管理器及自定义原理解析

    这篇文章主要介绍了python 上下文管理器原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python 提供了 with 语法用于简化资源操作的后续清除操作,是 ...

    python错误调试及单元文档测试过程解析

    这篇文章主要介绍了python错误调试及单元文档测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 错误分为程序的错误和由用户错误的输入引起的错误,...

    Python异常处理机制结构实例解析

    首先,Python 完整的异常处理语法结构如下: try: #业务实现代码 except Exception1 as e: ... 如果没有 try 块,则不能有后面的 except 块、else 块和 finally 块。但是也不能只使用 try 块,要

    Interpolation and decimation of digital signals

    The concepts of digital signal processing are playing an increasingly important role in the...are discussed, and finally the ideas behind multistage implementations for increased efficiency are presented

Global site tag (gtag.js) - Google Analytics