`

java异常finally相关执行顺序

 
阅读更多
package com.core;

public class TestException2 {  
    public TestException2() {  
    }  
  
    @SuppressWarnings("finally")
    boolean testEx() throws Exception {  
        boolean ret = true;  
        try {  
           throw new Exception();
        } catch (Exception e) {  
            System.out.println("testEx, catch exception");  
            ret = false;  
            throw e;  
        } finally {  
            System.out.println("testEx, finally; return value=" + ret);  
            return ret;  
        }  
    }  
    public static void main(String[] args) {  
        TestException2 testException1 = new TestException2();  
        try {  
            testException1.testEx();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}

 控制台输出:

testEx, catch exception

testEx, finally; return value=false

 

如果将testEx中finally字句的return注释掉,该方法会抛出异常给main方法。

结论:如果catch到异常会执行catch子句,在返回return或throw之前会执行finally子句,如果finally子句存在return或throw会优先执行。

分享到:
评论

相关推荐

    java异常处理习题

    * `finally` 子句在异常处理的最后执行。 七、throw 语句 * `throw` 语句用于抛出异常。 * `throw` 语句可以抛出 checked 异常和 unchecked 异常。 八、异常处理的 best practice * 尽量避免使用 `catch` 子句来...

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

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

    关于Java中try finally return语句的执行顺序浅析

    "Java中try finally return语句的执行顺序浅析" 关于Java中try finally return语句的执行顺序浅析是Java语言中一个重要的知识点,今天我们来探讨一下try finally return语句的执行顺序。 首先,需要了解的是...

    java异常ppt

    异常处理的执行顺序如下: - 无异常时:try -> finally -> 正常流程 - 出现异常时:try -> catch -> finally -> 异常后的流程 在处理返回值时,如果`try`块中有`return`语句,那么在执行`return`之前,`finally`块...

    try catch finally的执行顺序深入分析

    在Java、C#、JavaScript等语言中,`try-catch-finally`结构是异常处理的基础。这个结构的执行顺序是固定的,下面我们将深入分析其工作原理。 首先,程序会尝试执行`try`块中的代码。`try`块的作用是包含可能抛出...

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

    在Java编程语言中,`finally`语句块是一个非常关键的结构,用于确保特定代码无论在...理解`finally`的执行顺序对于编写健壮的、易于维护的代码至关重要。在实际开发中,我们应该充分利用这一特性来提高代码的可靠性。

    Java(异常处理).ppt

    总的来说,Java异常处理机制是通过异常类、`try-catch`结构、异常传递等手段,使得程序能够优雅地处理错误,保持正常执行流程,提高代码的可读性和可维护性。正确理解和运用异常处理机制是每个Java开发者必备的技能...

    Java异常处理总结

    Java异常处理机制主要依赖于以下几个关键字:`try`、`catch`、`throw`、`throws` 和 `finally`。 1. **try**:用于包裹可能引发异常的代码块。 2. **catch**:用于捕获try块中产生的特定类型的异常,并进行相应的...

    Java异常发生时程序的执行顺序

    Java异常处理机制是Java编程中不可或缺的一部分,它用于在程序运行过程中处理可能出现的错误或异常情况。当程序遇到无法正常处理的问题时,会抛出一个异常。Java提供了五种关键字来处理异常:`try`, `catch`, `...

    java异常讲解

    ### Java异常讲解 #### 一、异常的基本概念与重要性 异常是程序运行时发生的非预期情况,它可能由各种因素导致,如非法输入、内存不足等。在Java中,异常处理是一种重要的机制,用于处理运行时错误,使得程序能够...

    超级详细的讲解Java异常ppt,带你深入了解Java异常

    Java异常处理是编程中至关重要的一个环节,它用于管理和恢复程序在运行时遇到的错误情况。下面我们将深入探讨Java异常的各个方面。 首先,异常的概念。异常是程序在执行过程中遇到的非正常情况,通常是由某种错误...

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

    Java异常处理机制是一种优雅的错误处理方式,它允许开发者在程序中集中处理可能出现的问题,而不会使代码变得混乱。在Java中,异常处理主要通过两种方式实现:捕获异常(try-catch-finally)和声明异常(throws + ...

    Java异常处理教程

    Java异常处理是编程过程中的重要组成部分,它提供了一种机制来捕获并处理程序运行时可能出现的错误。在Java中,异常是一种事件,通常由不正常的条件或意外情况引起,中断了程序的正常流程。本教程将深入探讨Java异常...

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

    在Java中,finally语句可以与return语句结合使用,但是它们的执行顺序是非常重要的。finally语句是在try的return语句执行之后,return返回之前执行的。这意味着,如果在try块中执行了return语句,finally语句将在...

    java finally块执行时机全面分析

    以下是一个简单的例子来展示`finally`块的执行顺序: ```java public class FinallyTest { public static void main(String[] args) { int r = test(); System.out.println(r); } public static int test() { ...

    Java异常基础知识总结文档

    Java异常基础知识主要涵盖了Java语言中异常的分类、处理机制、抛出方式以及自定义异常等方面的知识。异常是程序在执行过程中出现的非正常情况,需要被妥善处理以防止程序崩溃或数据丢失。Java通过类层次结构中的...

    简单的java异常处理

    在这个简单的Java异常处理主题中,我们将深入探讨异常的设定、捕捉和处理过程,以及如何在Applet界面中显示处理结果的相关信息。 1. **异常的设定**:在Java中,当程序执行过程中发生错误或不正常情况时,会抛出一...

    Java异常处理.pdf

    Java异常处理的核心关键字包括`try`、`catch`、`throw`、`throws`和`finally`。`try`块用于包含可能抛出异常的代码,当异常发生时,控制流会立即转移到相应的`catch`块。`catch`块可以有多个,用于捕获不同类型的...

    Java SE编程入门教程 java异常(共57页).pptx

    如果有异常,`try`块内的代码在抛出异常后停止执行,然后跳转到匹配的`catch`块,执行完后继续执行`finally`块。 了解异常处理对于编写健壮的Java程序至关重要,因为它允许开发者优雅地处理错误情况,保证程序的...

Global site tag (gtag.js) - Google Analytics