`

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和return的关系实例解析是Java编程语言中一个重要的知识点。finally语句是Java语言中的一种特殊语句,它用于释放资源、关闭文件、关闭网络连接等操作。return...

    Google地图反向地址解析

    } finally { return addr; } } } ``` #### 四、注意事项 1. **API限制**:需要注意的是,Google地图API对每个IP地址每天的地址解析请求次数有限制,如果在24小时内收到来自一个IP地址超过15,000个地址解析请求...

    Java解析大数据量Excel,可解析1048576行excel

    } finally { workbook.dispose(); // 关闭流并释放资源 } ``` 在实际应用中,根据硬件配置和数据处理需求,可能需要调整上述策略,以达到最佳性能。在测试环境中,对于1048576行的Excel文件,219秒的解析时间已经...

    Java异常处理的四大金刚:try、catch、finally和throw的深度解析

    ### Java异常处理的四大金刚:try、catch、finally和throw的深度解析 #### Java异常处理概述 异常处理机制是程序设计中的一个重要组成部分,它能够帮助程序员有效地管理程序运行过程中可能出现的各种错误情况。...

    java解析zip文档,解决解析zip中解析xml和html文档流断的方法.pdf

    } finally { try { zipis.close(); } catch (IOException e) { e.printStackTrace(); } } return 0; } private void parseFile(CustomInputStream is, StringBuffer text) throws IOException { // 使用is...

    完整实现ftp上传与下载并解析csv文件

    对于错误处理,Java的异常处理机制(try-catch-finally)是基础,可以捕获并处理各种可能的异常。日志记录是系统监控的重要部分,可以使用log4j、SLF4J或Java内置的`java.util.logging`框架。通过设置不同级别的日志...

    基于java实现了对698报文部分数据项的解析,学习之作,仅供参考.zip

    Java的异常处理机制(try-catch-finally语句)可以确保程序在出现错误时能够优雅地恢复,避免程序崩溃。 6. **测试与调试**:为了确保解析的准确性,开发者需要编写测试用例,使用JUnit或其他测试框架对解析功能...

    JAVA解析配置文件

    } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 5. **访问配置**:`ConfigFile.java`可能提供了一些方法,允许其他类访问解析后的配置数据,如...

    finally分析

    #### 四、示例解析 假设有一个简单的示例,其中使用了终止处理程序来避免内存泄漏: ```cpp char *p = NULL; __try { p = new char[256]; return; } __finally { delete[] p; p = NULL; } ``` 在这个例子中,...

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

    在Java编程中,`finally`语句块是一个关键的组成部分,尤其在异常处理中起到至关重要的作用。然而,关于`finally`的执行原理,并非所有程序员都对其有深入的理解。`finally`的主要功能是在程序执行过程中确保某些...

    DNS域名解析,delphi xe8,windows、android、ios亲测可用

    在开发过程中,掌握DNS解析机制对于跨平台应用,如在Windows、Android和iOS上的应用尤其关键。Delphi XE8是一款强大的集成开发环境(IDE),支持多种平台的应用程序开发,包括桌面系统和移动设备。 首先,理解DNS...

    Delphi XE7中解析JSON

    在Delphi XE7中,解析JSON(JavaScript Object Notation)数据是一项常见的任务,尤其是在与Web服务、API接口交互时。JSON作为一种轻量级的数据交换格式,因其易于阅读和编写,同时也易于机器解析和生成,因此被广泛...

    httpClient采集jsoup解析

    例如,以下代码展示了如何用Jsoup解析一个网页并获取标题: ```java Document doc = Jsoup.connect("http://example.com").get(); Element title = doc.select("title").first(); System.out.println(title.text())...

    java抛出异常与finally实例解析

    Java 异常处理机制与 Finally 块的使用详解 Java 异常处理机制是 Java 语言中的一种错误处理机制,用于处理程序执行过程中的意外情况,例如网络连接失败、文件不存在、算术溢出等。Java 异常处理机制通过 try-catch...

    疯狂JAVA讲义课后习题解析

    异常处理是JAVA中的一个重要概念,习题解析详细介绍了try-catch-finally语句块的使用,以及如何自定义异常。通过解决习题,读者可以学会如何正确地捕获和处理程序运行时可能出现的错误,以确保程序的健壮性。 JAVA...

    c#经典案例解析

    2. **异常处理**:学习如何使用try-catch-finally结构进行错误处理,以及自定义异常类,提高程序的健壮性。 3. **事件和委托**:C#中的事件和委托是实现组件通信的重要机制,案例可能涉及GUI应用中的按钮点击事件,...

    delphi解析json处理单元

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

    JAVA解析json文件(使用json.org.jar)

    } finally { if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` `readStreamToString()`是辅助方法,用于将输入流转换为字符串,具体...

    Java中高级核心知识全面解析.pdf

    * try-catch-finally 是捕捉异常的基本结构。 4.3 多线程 * 线程是程序执行的基本单位,可以实现高效的并发处理。 * 线程有五种基本状态:新建、运行、阻塞、等待、死亡。 4.4 文件与 I/O 流 * Java 中的 I/O 流...

    delphi语言解析xml

    finally XMLDoc.Free; end; end; ``` 一旦XML文档被加载,我们可以访问其根节点,并通过节点路径、属性名或索引来遍历和操作文档。例如,要获取某个元素的子节点或属性值,可以这样做: ```delphi var Node: ...

Global site tag (gtag.js) - Google Analytics