`
esffor
  • 浏览: 1373255 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java中当finally遇到return的处理方式

阅读更多
导读:
  最近研究Java,发现很多有趣的事情。今天又是一例。
  先看代码(注意第5行和第8行的两个”return”)
  publicclassTestClass{
  public inttest(){
  try{
  System.out.println("step1")
  return 1
  }finally{
  System.out.println("step2")//会执行吗?
  return 2
  }
  }
  public staticvoidmain(String[]args){
  TestClass te=newTestClass()
  int t=te.test()
  System.out.println(t)
  }
  }
  按理说,一个方法执行到return就应该返回,但是按照Java的规范,finally中的代码又是一定要被执行的。
  先看看上面这个程序的运行结果:
  step1
  step2
  2
  可以看到,虽然在try块中遇到了return,但finally中的代码仍然被执行了。test()方法的返回值最终为2。
  那么try块中的return语句没有用吗?不是的。
  如果你注释掉第8行,即finally中的return语句,你会发现test方法最终会返回1。结果如下:
  step1
  step2
  1
  发散一下,如果我在catch中返回一个值,同时也在finally中加入一个return语句,结果会怎么样呢?
  答案是:现象相同。catch中的return和finally中的return都会执行。有兴趣的可以试试。
  标签: Finally, Java, Return

本文转自
http://webdn.trueself.cn/archives/83
分享到:
评论

相关推荐

    Java finally语句到底是在return之前还是之后执行?

    当解释器遇到`return`语句时,它会创建一个包含返回值的对象,并将其存储在一个内部数据结构中。然后,解释器跳转到`finally`块,执行其中的代码。即使在`finally`块中有`return`,原始的`return`语句的返回值也不会...

    try、catch、finally、return 执行顺序.doc

    try、catch、finally、return 执行顺序是 Java 编程语言中的一种 exception 处理机制,用于处理程序中的异常情况。下面我们来详细讲解 try、catch、finally、return 执行顺序的规则和特点。 首先,我们需要了解 try...

    浅谈Java中return和finally的问题

    在Java编程语言中,`return` 语句和 `finally` 语句的相互作用是一个重要的概念,尤其是在处理异常处理时。`finally` 语句块通常用于确保某些代码无论是否发生异常都会被执行,而 `return` 语句用于提前结束方法并...

    Java异常处理中同时有finally和return语句的执行问题

    总的来说,Java异常处理中的`finally`块设计用于确保关键操作的执行,而`return`语句用于返回方法的值或结束方法执行。当两者同时存在时,`finally`块的代码总是先执行,但最终的返回值由最后遇到的`return`语句决定...

    Java异常处理-异常处理的方式1

    在Java中,异常处理主要通过两种方式实现:捕获异常(try-catch-finally)和声明异常(throws + 异常类型)。本篇文章将详细介绍第一种方式——捕获异常。 异常处理的抓抛模型是Java异常处理的核心概念。当程序执行...

    JAVA中异常处理的WORD文档

    Java中的异常处理是编程实践中必不可少的一部分,它确保了程序在遇到错误或异常情况时能够优雅地处理并继续执行,或者至少提供有用的错误信息。异常处理的主要目的是提高程序的健壮性和稳定性。 1. 为什么需要异常...

    面试Java程序员最可能遇到的问题考试大全

    本文将详细解答在Java面试中可能会遇到的一些核心问题,这些问题涵盖了Java语言的基础概念、类库使用、异常处理、内存管理、多线程、设计模式等多个方面。以下是针对这些面试问题的详细解释: 1. **面向对象的特征*...

    java程序中的异常处理

    ### Java程序中的异常处理 #### 异常处理概念与机制 在Java编程中,异常处理是一种用于处理程序运行过程中可能出现的错误或意外情况的重要机制。它可以帮助开发者更好地控制程序流,确保程序即使在遇到错误的情况...

    使用try-catch-finally处理异常

    当程序运行过程中遇到错误或异常情况时,如果没有妥善处理,可能会导致程序崩溃。Java、C#等许多编程语言提供了异常处理框架,其中“try-catch-finally”是常用的一种结构。下面我们将详细探讨这个主题。 1. **异常...

    java异常处理

    Java异常处理机制为程序员提供了一种优雅的方式来处理程序执行过程中可能出现的问题。通过合理地使用`try`、`catch`和`finally`等关键字,开发者可以确保程序即使遇到问题也能以可控的方式运行或终止。同时,通过...

    java基础关于异常处理方式

    Java异常处理的主要目的是中断正常的代码流程,处理程序运行时可能出现的问题,如文件未找到、网络连接失败或除以零等错误,确保程序在遇到问题时能够优雅地恢复或结束。 Java异常处理通过五个关键字来实现:`try`...

    高效java异常处理机制

    在Java编程中,异常处理是程序健壮性的重要组成部分,它确保了程序在遇到错误时能够优雅地处理问题,而不是突然崩溃。本文将深入探讨Java的异常处理机制,结合"Effective Java Exceptions"文档中的观点,来揭示如何...

    java异常处理.doc

    总之,Java异常处理是编程中不可或缺的一部分,它有助于编写健壮、可维护的代码,确保程序在遇到问题时能够优雅地失败,而不是突然崩溃。正确理解和运用异常处理机制是成为一名专业Java开发者的必备技能。

    java异常处理,绝对值得你的关注

    Java异常处理机制使得程序在遇到错误或不正常情况时能够优雅地处理问题,而不是突然崩溃,这对于任何Java开发者来说都是必须掌握的核心技能。下面将详细阐述Java异常处理的基本概念、结构以及实践中的应用。 首先,...

    java练习题及其答案

    学习如何使用try-catch-finally块捕获和处理异常,以及理解不同类型的异常类,是Java编程的重要组成部分。 5. **IO流**:Java的IO流库允许程序进行输入和输出操作,包括读写文件、网络通信等。练习题可能会让你实现...

    JAVA经典试题集合

    当try块中的代码遇到return语句时,会先执行finally块,然后返回值。在给定的题目中,由于finally块会打印"Finally",因此程序运行后会输出"Finally",所以正确答案是B。如果try块中包含System.exit(1),程序会立即...

    Java异常处理总结

    综上所述,Java异常处理机制为开发者提供了一套完整的解决方案,帮助他们在面对程序中的各种异常情况时能够从容应对。通过合理设计异常处理逻辑,不仅可以增强程序的健壮性,还能提升用户体验,减少后期维护的成本。

    关于Java异常处理机制的深入理解.doc

    Java异常处理机制是Java编程中一个至关重要的概念,它提供了对程序运行时错误的优雅处理方式。在Java中,异常是程序执行过程中发生的错误,这些错误可能会中断正常的流程。异常处理通过`try-catch-finally`块来实现...

    375.373.JAVA基础教程_异常处理-处理异常:try-catch方式(375).rar

    在这个“375.373.JAVA基础教程_异常处理-处理异常:try-catch方式(375)”的教程中,我们将深入探讨Java中的异常处理机制,特别是如何通过try-catch语句块来处理异常。 异常在Java中是一种对象,它是类`Exception`或...

    Java-Java异常处理教程

    Java异常处理是编程中至关重要的一个环节,它帮助开发者在程序运行时捕获并处理错误,确保程序的健壮性和稳定性。在这个Java异常处理教程中,我们将深入探讨这个主题,以便提升你的Java编程技能。 首先,Java异常是...

Global site tag (gtag.js) - Google Analytics