`

[#0x001F] finally总是会被执行

    博客分类:
  • Java
 
阅读更多

  finally总是会被执行,即使try中有break、continue、return这样的语句,如:

public class FinallyTest
{
	public static void main(String[] args)
	{
		int i;
		
		for (i = 0; ;i++)
		{
			try
			{
				if (i == 0)
					continue;
				else if (i == 1)
					break;
			}
			finally 
			{
				System.out.println("loop " + i + " ends");
			}
		}
		
		try
		{
			return;
		}
		finally
		{
			System.out.println("return ends");
		}
	}
}

//output
/*
	loop 0 ends
	loop 1 ends
	return ends
*/

 

  另外,从这个例子可以看出,不写catch,直接try-finally配对也是可以的。

分享到:
评论

相关推荐

    东财20秋《Java语言应用开发基础》单元作业一答卷.docx

    - `finally`块在程序尝试执行完`try`块之后一定会执行,无论是否发生异常。 - 选项B“必须执行的分支”是正确的描述。 #### 面向对象编程的基本元素 - **面向对象编程的基本元素**: - 类(Class):定义对象的...

    Python实现监控程序执行时间并将其写入日志的方法

    1. **`pre_logged`**:如果 `when` 为 "pre",那么将返回 `pre_logged` 装饰器,该装饰器会在被装饰的函数执行前打印函数名、参数等信息。 2. **`post_logged`**:如果 `when` 为 "post",那么将返回 `post_logged` ...

    01 202206Python 三级.docx

    7. 异常处理示例:try-except-else-finally 结构,try 块中执行可能出现异常的代码,except 块中捕获异常,else 块中执行没有出现异常时的代码,finally 块中执行无论是否出现异常都要执行的代码。 四、进制转换 8...

    java解惑-语法细节介绍

    在计算机科学领域中,十六进制是一种常用的数字表示方法,它以16为基数,由0-9和A-F(或a-f)组成。在Java中,十六进制的应用也相当广泛,尤其是在处理颜色值、内存地址等场合。 1. **声明与初始化**:Java支持直接...

    JAVA基础教程

    - **多线程**:Java支持多线程编程,可以同时执行多个任务,提高了程序的并发性和响应速度。 - **高性能**:虽然Java是一种解释型语言,但通过JIT编译器等技术实现了接近于本地代码的性能。 #### 二、Java编程基础 ...

    Python库 | pyModbusTCP-0.1.6.tar.gz

    支持的功能码包括0x01(读离散输入),0x02(读输入寄存器),0x03(读保持寄存器),0x04(写单个离散输出),0x05(写单个保持寄存器),0x06(写多个保持寄存器)等。 - **Slave模式**: 库也支持创建Modbus TCP...

    java 的命名规范

    事件机制主要用于 GUI 编程,如 Swing 或 AWT,当用户进行操作时,事件处理器会被调用。 13. 多态允许子类对象被当作父类对象使用,提供了代码的灵活性。继承是实现多态的基础,子类继承父类的属性和方法。 14. ...

    modbus4j.jar

    - 包含多种Modbus功能码的实现,如0x03(读保持寄存器)、0x06(写单个寄存器)、0x0F(写多个寄存器)等。 - 错误检测机制,如CRC校验,确保数据传输的准确性。 3. 在Java中使用Modbus4j: - 首先,需要将...

    Python学科面试宝典 ver3.01

    - **finally中的代码执行**:即使在`except`中使用`return`,`finally`块的代码仍会执行。 - **自定义异常**:创建自定义异常类继承自`Exception`或其子类,然后使用`raise`抛出,如`class MyError(Exception): ...

    整理后java开发全套达内学习笔记(含练习)

    十六进制数,零x开头 0x55(十六进制)=5*16+5(十进制) 类型:数据都必须有类型 boolean (8bit,不定的)只有true和false两个值 char 16bit, 0~2^16-1 (2^16=6万6) byte 8bit, -2^7~2^7-1 (2^7=128; 注意:两个 ...

Global site tag (gtag.js) - Google Analytics