`
清流鱼
  • 浏览: 30673 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

函数中try catch finally 的返回值

IBM 
阅读更多
package com.ibm.etp;

public class ReturnValue {
	
	public static void main(String[] args)
	{
		int temp = show();
		System.out.println(temp);
	}
	
	private static int show()
	{
		int a=3;
		try
		{
			a = 3;
			a=a/0;
			return a;
			
		}
		catch(Exception ex)
		{
			a=4;
			return a;
		}
		finally
		{
			a=5;
		}
	}
}

  输出的结果为4。

执行的顺序是先执行try块中的语句,遇到除数为零的异常,就会执行catch块中语句,遇到return语句后就会转到finally块中,然后再返回到catch块中的return语句,大家调试一下,就很明白。但变量a在函数中是始终存在的,但在finally块中a被赋值5,但return的值却是4,结果让我很意外。老师让我们记住这个原则:finally块中赋值就可以看做不被执行。但我好奇内部机制是什么样的,还望大侠多多指点啊

分享到:
评论

相关推荐

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

    这意味着,如果在 `finally` 块中有 `return`,那么这个 `return` 将覆盖之前 `try` 或 `catch` 中的 `return`,成为函数的最终返回值。 例如,在JavaScript中,以下示例展示了 `try-catch-finally-return-in-...

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

    在这个过程中,函数会将`try`或`catch`块中的`return`语句返回的值暂存起来,然后执行`finally`块。 如果在`finally`块中也有`return`语句,那么这个`return`值会覆盖之前暂存的值。也就是说,最终返回给调用者的值...

    如何编写没有TryCatch的程序

    在某些关键路径上,如资源的清理或系统级操作,使用 `try-finally` 或 `try-catch` 仍然是必要的,以确保程序的健壮性和稳定性。在编程实践中,明智地结合使用这些策略,可以编写出更高效、更易于维护的代码,同时...

    java函数中文速查手册

    `try-catch-finally`结构则是异常处理的主要方式,确保程序在遇到错误时能优雅地处理。 速查手册通常按照函数的类别和功能进行分类,便于用户根据需求快速定位。例如,你可以找到关于字符串处理的`String`类方法,...

    Java 实例 - Finally的用法源代码-详细教程.zip

    特别是当`try`或`catch`中已有`return`时,可能会混淆函数的返回值。 通过以上讲解,我们了解了`finally`在Java异常处理中的重要作用,它保证了关键操作的执行,无论程序执行路径如何变化。在实际编程中,合理利用`...

    java经典小程序-函数小程序

    `try-catch-finally`块是处理异常的关键结构。 7. **访问修饰符**: 除了`public`,还有`private`, `protected`和默认(无修饰符)访问级别,它们控制了函数在类内部、同一包内、子类或其他包中的可见性。 8. **...

    java函数速查手册常用函数

    13. **异常处理**:`try-catch-finally`语句块用于捕获和处理程序运行时可能出现的错误。 14. **Lambda表达式**:Java 8引入的新特性,简化了匿名函数的编写。 15. **方法引用来调用函数**:如`Runnable::run`,...

    VB.Net常用语法

    VB.Net的Try...Catch...Finally语句用于捕获和处理程序运行时可能出现的错误。尝试执行可能出错的代码块置于Try关键字之后,如果发生异常,程序会立即跳转到相应的Catch块来处理错误。多个Catch块可以用来处理不同...

    C语言-思维导图源文件

    C语言-思维导图C语言思维导图 语言基础 数据类型:整数、浮点数、字符、布尔值、数组、结构体、枚举 变量:声明、初始化、赋值 ...try-catch语句:try块、catch块、finally块 异常类型:runtime error、logical error

    Java调用Oracle的过程和函数

    为了更好地管理和处理数据,通常需要在Java程序中调用Oracle数据库中的存储过程或函数。本文将详细介绍如何通过Java来调用Oracle数据库中的函数,并特别关注带有不同类型的输入(in)、输出(out)及输入输出(in/...

    VB.NET 2008调用SQL存储过程并返回值示例

    如果存储过程中遇到错误但希望继续执行其他操作,可以使用`TRY...CATCH...FINALLY`结构,并在`CATCH`块中进行错误处理,然后在`FINALLY`块中关闭连接。如果需要停止执行,可以在`CATCH`块中抛出一个新的异常或设置一...

    Java计算机语言函数应用

    - 异常处理通过`try-catch-finally`块实现,确保资源的正确释放。 10. **内联函数与尾递归优化** - 内联函数可以提高性能,因为它们在编译时被展开,而不是在运行时调用。 - 尾递归优化是优化递归函数的一种方法...

    Visual Basic.NET 函数——黑魔方

    在函数中,可以使用Try...Catch...Finally结构来处理可能出现的异常,确保程序的健壮性。 9. **函数与面向对象编程** 在VB.NET的面向对象编程中,函数可以作为类的方法存在,这样它们就成为对象的一部分,增强了...

    java编程主要函数的用法详解

    当函数可能会抛出异常时,可以在`try`块中编写可能引发异常的代码,在`catch`块中捕获并处理异常,`finally`块确保无论是否发生异常都会执行的代码: ```java try { // 可能抛出异常的代码 } catch (Exception e...

    《Visual C++ 经典函数》588页

    - **try-catch-finally结构**:在Visual C++中,可以使用try-catch-finally语句来处理程序运行时可能出现的各种异常情况。 ### 使用建议 1. **深入理解每个函数的功能**:在使用前,务必了解函数的作用、参数含义...

    java函数速查中文版

    5. **异常处理**:Java的异常处理机制是通过try-catch-finally语句块实现的,速查中会包含如何抛出、捕获和处理异常的信息。 6. **多线程**:Thread类和Runnable接口是Java并发编程的基础,函数速查会涵盖start()、...

    java函数速查

    在异常处理方面,Java提供了`try-catch-finally`结构来捕获和处理异常。`throw`关键字用于抛出异常,而`throws`则用于声明函数可能抛出的异常。 对于高级特性,Java函数速查可能还涵盖了泛型、枚举、注解、Lambda...

    pb常用函数手册

    9. **错误处理**:`Error()`, `LastError()`, `Trap()`, `Try...Catch...Finally`结构用于错误捕获和处理,确保程序的健壮性。 10. **窗口和控件操作**:PB中的`SetProperty()`, `GetProperty()`, `Show()`, `Hide...

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

    3. finally语句可以与return语句结合使用,但是finally语句的返回值将覆盖try/catch中的return语句。 4. 在finally中写return语句会有警告,因为它会阻止函数抛出异常,而改为正常返回。 Java中finally和return的...

    Java 函数速查 HTML版

    `try-catch-finally`语句块是处理异常的关键。 7. **多线程**:Java提供了`Thread`类和`Runnable`接口来支持并发编程,函数如`start()`、`sleep()`、`join()`和同步方法如`synchronized`。 8. **IO/NIO**:Java的`...

Global site tag (gtag.js) - Google Analytics