`
eclipse07
  • 浏览: 21419 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

finally 不会执行的情况

阅读更多

在 Java 中,finally 有没有可能不会执行的,试看看下面的情况

    public class TestFinally {
	private static class DaemonThread extends Thread {
		@Override
		public void run() {
			try {
				TimeUnit.MILLISECONDS.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			} finally {
				System.out.println("In finally");
			}
		}
	}
	
	public static void main(String args[]) {
		DaemonThread daemon = new DaemonThread();
		daemon.setDaemon(true);
		daemon.start();
	}
}


运行结果并没有打印"in finally",因为在主线程结束时,后台线程同样被结束掉,finally没有机会执行。
分享到:
评论

相关推荐

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

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

    java 中finally语句块与return的执行关系

    Java 中的 finally 语句块是用于保证无论出现什么情况,一定要执行的代码块。在 try-catch-finally 结构中,finally 语句块的执行顺序是非常重要的。下面我们来详细探讨 finally 语句块与 return 的执行关系。 首先...

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

    在Java编程语言中,`finally`语句块是一个非常关键的结构,用于确保特定代码无论在任何情况下(包括异常发生或正常返回)都会被执行。这个特性使得`finally`成为处理资源清理,如关闭文件流、数据库连接等操作的理想...

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

    如果在`try`块中的代码没有发生任何异常,那么`catch`块将不会被执行,程序会直接跳到`finally`块。 如果`try`块中的代码确实抛出了一个异常,那么相应的`catch`块会被执行。`catch`块通常包含处理特定异常的代码,...

    java finally块执行时机全面分析

    总的来说,`finally`块的存在确保了程序的整洁性和资源管理的可靠性,它使得开发者能够在任何情况下执行必要的清理操作,而不用担心异常会影响这部分代码的执行。理解`finally`块的执行机制对于编写健壮的Java代码至...

    finally结构的注意点(一)

    在这种情况下,每个 `finally` 块都会按嵌套层次依次执行。 5. **异常传递**:如果 `finally` 块不包含 `return` 语句,那么它不会影响已经抛出的异常。异常会在 `finally` 执行完毕后继续向上层传播。 6. **静态...

    Java语言finally语句详解,finally到底是在return之前还是之后执行.zip

    Java语言finally语句详解,finally到底是在return之前还是之后执行.zip

    try-catch-finally捕获异常

    try-catch-finally语句是Java语言中一种常用的异常处理机制,当程序在执行过程中出现异常时,可以使用try-catch-finally语句来捕获和处理异常。下面将详细介绍try-catch-finally语句的使用方法和注意事项。 一、try...

    try-catch-finally执行顺序验证

    try-catch-finally执行顺序验证(左边是.java文件,右边是.class文件) 提示: try、catch块内的return操作编译后会变成把return的值保存到变量var的操作。 总结: try、catch块内的return操作编译后会变成把return的值...

    Java中finally块执行与return关系深度剖析

    Java finally语句到底是在return之前还是之后执行?Java finally执行深度剖析,具体看这篇博文:http://blog.csdn.net/lanxuezaipiao/article/details/16922895,这是里面相关的源码,欢迎大家下载使用。

    finally 一定会执行(实例代码)

    无论哪种情况,`finally`块始终会在`try`和`catch`块之后执行。 **正常执行情况**: 1. `try`块中的代码成功执行,`res = 1`。 2. `System.out.println("try ……");`打印"try ……"。 3. `return res + 1;`返回2...

    使用try-catch-finally处理异常

    `finally`块是可选的,无论`try`和`catch`块中的代码是否抛出异常,`finally`块里的代码都会被执行。这通常用于资源清理,如关闭文件流、网络连接等。即使在`try`或`catch`块中有return语句,`finally`块的代码也会...

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

    举个例子,当`try`语句块在执行前就返回了(`return`语句)或抛出了异常,如果`try`块没有被执行,相应的`finally`块也不会执行。在清单1的示例中,由于`i = i / 0`导致了`ArithmeticException`,程序在进入`try`块...

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

    还有情况是当一个线程在执行try语句块或者catch语句块时被打断(interrupted)或者被终止(killed),与其对应的finally语句块可能不会执行。还有更极端的情况,就是在线程运行try语句块或者catch语句块时,突然死机或者...

    Jungle68#-#[Java] try catch finally,try里有return,finally还执行么?1

    Condition 3: try中有异常,try-catch-finally里都没有return ,finally 之后有个returntry中有异常以后,根据

    finally分析

    例如,在Microsoft Visual C++ 6.0中,编译器会在生成的机器码中添加特殊指令,用于跟踪`__try`和`__finally`块的执行情况。这些指令确保即使遇到异常或正常退出,也能正确地执行`__finally`块中的代码。 #### 四、...

    josonle#Coding-Now#finally语句如何执行1

    - 无论try是否发生异常,finally语句都会执行- 如果try/catch中包含控制转移语句(return、continue、break),finally

    try-catch-finally-return-in-finally.rar_return

    `finally` 块总是会被执行,即使在 `try` 或 `catch` 中已经有一个 `return` 语句,这使得我们可以确保无论发生什么情况,都能执行必要的清理工作并返回一致的结果。 通过分析 `12.5-1.js` 和 `try-catch-finally-...

    try-finally-return-in-finally.rar_return

    在编程语言中,`try-finally` 结构是用来确保一段代码在任何情况下(无论是正常执行还是抛出异常)都会被执行的语句块。这个结构在处理资源管理,比如文件流关闭或者网络连接断开等场景时特别有用。当我们谈论`...

    final, finally, finalize的区别

    这意味着即使在程序中发生未被捕获的异常,或者在 `catch` 块中执行了 `return` 或 `throw` 操作,`finally` 块中的代码依然会得到执行。`finally` 的典型用途包括释放资源,如关闭文件流、数据库连接等,确保程序...

Global site tag (gtag.js) - Google Analytics