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

finally不执行的陷阱

 
阅读更多
写了个DEMO,说明下finally在System.exit(-1);的后面,是不被执行的。
/**
 * @author piaohailin
 * @date 2014-5-16
 */
public class FinalTest {

    public static void main(String[] args) {
        try {
            System.exit(-1);
        } catch (Exception e) {

        } finally {
            System.out.println("finally");
        }
    }
}

分享到:
评论

相关推荐

    finally结构的注意点(一)

    5. **异常传递**:如果 `finally` 块不包含 `return` 语句,那么它不会影响已经抛出的异常。异常会在 `finally` 执行完毕后继续向上层传播。 6. **静态块与实例初始化块**:`finally` 块与类的静态初始化块和实例...

    C#高手进阶之陷阱和缺陷

    3. 异常处理:虽然C#提供了异常处理结构(try-catch-finally),但滥用或者不恰当的异常处理可能导致代码难以理解和维护。理解何时应该抛出异常,以及如何编写清晰的异常信息,对于写出健壮的代码至关重要。 4. ...

    Java Scjp 陷阱大全.doc

    只有在不调用`System.exit()`的情况下,finally块才会在所有情况下执行。 12. **try-catch-finally顺序**:try-catch-finally语句块的顺序是固定的,try必须在catch和finally之前,顺序错误会导致编译错误。 13. *...

    Java 面试中的陷阱

    - `finally`:在异常处理中,无论是否抛出异常,finally块中的代码都会被执行,确保资源的释放和清理。 - `finalize`:是Object类中的一个方法,用于对象被垃圾收集前进行清理工作,但不推荐直接使用,因为其行为...

    JAVA面试陷阱(网摘)

    通常,不应直接使用`finalize()`,因为它的工作细节由JVM控制,并且不保证一定会执行。 2. **Anonymous Inner Class(匿名内部类)** - 匿名内部类可以实现接口,但不能直接继承类。不过,它可以继承一个抽象类,...

    java常见疑惑与陷阱

    **1.3 不正常的`finally`和`null`** `finally`块是Java中异常处理机制的一部分,它无论是否发生异常都会被执行。但是,如果在`finally`块中设置了返回值,那么在前面的`return`语句中的值将会被覆盖。 **示例:** ...

    java面试中的陷阱java面试中的陷阱

    但是,finalize()方法并不是必须实现的,并且它的执行时间不确定,因此不建议依赖它来进行资源释放。 #### 二、匿名内部类与接口实现 - **匿名内部类**:这是一种特殊的类,没有显式的名字,通常在实现接口或者...

    Java面试中的陷阱

    Java面试中的陷阱往往涉及到对语言核心概念的深度理解,这些陷阱涵盖了从基本语法特性到高级设计模式的应用。面试官通常会通过一些看似简单但实际上需要深入理解的问题来测试候选人的技能和经验。 首先,我们来看看...

    VB错误陷阱示例(根据需要,显示错误代码)

    通过合理使用`Try...Catch...Finally`结构(在VB.NET中)或`On Error`语句(在VB6中),我们可以捕获并处理可能出现的异常,同时提供反馈给用户,告知他们发生了什么问题以及如何解决。在编写错误处理代码时,应考虑...

    scjp考题中的种种陷阱

    因此,如果在try-catch-finally结构中使用`System.exit()`,finally块中的代码不会被执行。 12. **try-catch-finally块的顺序**:异常处理结构的顺序很重要。如果catch块的顺序不正确,可能会导致某些异常无法被...

    Java程序员面试陷阱大全.doc

    但不应依赖`finalize()`进行资源释放,因为它并不保证一定会被执行。 2. **匿名内部类**: - 匿名内部类没有名字,可以实现接口或扩展类。但是,匿名内部类不能扩展其他类,但可以实现一个或多个接口。这常用于...

    java面试陷阱集合

    27. **try-finally**:finally块中的代码总会执行,无论是否有return,它在return语句之前执行。 28. **效率计算2乘以8**:最简单的方法是直接赋值,`int result = 2 * 8;`。 29. **对象值相同但hash code不同**:...

    Java程序员面试陷阱大全

    - **异常处理**:`finally`块会在异常发生时执行,即使`catch`块中抛出了异常,`finally`中的代码仍会被执行。这是确保资源释放等关键操作完成的重要机制。 - **对象清理**:`finalize()`方法是Java中对象进行垃圾...

    SCJP考题中的陷阱

    11. **System.exit()在try-catch-finally块中**:调用`System.exit()`会立即结束程序,导致finally块不会执行。 12. **try-catch-finally块的顺序**:try块必须在catch和finally之前,否则编译错误。 13. **main...

    Java陷阱一箩筐.doc

    27. **try-finally**:finally 代码块总会在 try 代码块执行完(无论是否有 return 语句)或异常发生后执行。 28. **计算效率问题**:计算 2 乘以 8 可以直接使用 `2 * 8`,无需复杂算法。 29. **对象值相同但 ...

    Java程序员应聘100例技术陷阱解析.doc

    Java程序员在面试中可能会遇到各种技术陷阱,这些陷阱主要涵盖了语言特性和常用库的理解。以下是对这些知识点的详细解析: 1. **final, finally, finalize的区别**: - `final`:用来修饰类、方法和变量,表示不可...

    Java程序员面试可能遭遇的30个技术陷阱解析.doc

    Java程序员在面试中可能会遇到各种技术陷阱,这些陷阱涵盖了语言特性和常见的编程概念。以下是针对提供的部分内容进行的详细解析: 1. **final, finally, finalize的区别** - `final` 关键字用于声明不可变的类、...

Global site tag (gtag.js) - Google Analytics