`
清流鱼
  • 浏览: 30411 次
  • 性别: 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块中赋值就可以看做不被执行。但我好奇内部机制是什么样的,还望大侠多多指点啊

分享到:
评论

相关推荐

    谈谈Java中try-catch-finally中的return语句

    我们知道return语句用在某一个方法中,一是用于返回函数的执行结果,二是用于返回值为void类型的函数中,仅仅是一个return语句(return ;),此时用于结束方法的执行,也即此return后的语句将不会被执行,当然,这种...

    VB.Net常用语法

    在一个try………end try 过程中可以使用catch与finally两个中的一 个,或者两个一起用, 二:Protected, private, Public 封装控制 这三个关键字一般放在语句最前面,而会置于overloads与Overrides的 后面...

    Java理论试题.pdf

    2. Java语言中异常处理的基础知识:Throwable类是所有异常类的基类、try-catch-finally语句的使用等。 3. Java语言的基本数据类型:整数、浮点数、字符型、布尔型、字符串型等。 4. Java语言的运算符:赋值运算符...

    C++考试题库及答案归类.pdf

    - 异常处理机制,例如 try、catch 和 throw 的用法。 - 不同的异常处理方式,例如 finally 块的使用。 6. 输入和输出: - cin 和 cout 的使用,例如用 cin 为整型变量输入数据。 - 输入和输出的格式控制,例如...

    day26作业1

    3. 异常处理:Java语言提供了多种异常处理机制,例如使用try-catch语句捕捉异常,使用finally语句释放资源。 day26作业1涵盖了Java语言的基础知识、控制结构、函数、面向对象编程和异常处理等多个方面,旨在帮助...

    大学《JAVA语言程序设计》期末考试试题及答案.doc

    * try、catch和finally块的使用 * 异常的抛出和捕捉 9. 输入/输出流 * 输入流和输出流的概念 * 文件输入/输出流的使用 10. 其他 * Java中的布局管理器:BorderLayout、FlowLayout、CardLayout等 * Java中的...

    JSTL详细标签库介绍

    若try抛出Exception,App寻找在Catch1~100寻找合适异常处理程序,若找到,执行CATCH{}代码,没有,执行最后一个catch{}后代码<BR>2、 若try未抛出Exception,就执行执行最后一个catch{}后代码。<BR><BR>3、 throws...

    java代码审查表.pdf

    * 是否每个函数都有try...catch保护?(重要Y80) * 是否确认了所有关键代码都做了捕获异常处理?(重要60) * 是否确认了所有函数的所有分支都有返回值?(重要50) 七、可维护性规则 Java代码审查表中关于可维护...

    Node.js MongoDB AngularJSWeb开发中文版.part1

    2.10.1 try/catch块 30 2.10.2 抛出你自己的错误 31 2.10.3 使用finally 31 2.11 小结 32 2.12 下一章 32 第2部分 学习Node.js 第3章 开始使用Node.js 35 3.1 了解Node.js 35 3.1.1 谁在使用Node.js 35 3.1.2 Node....

    2023年Java编程基础知识点汇总及习题集答案.docx

    异常知识点汇总包括 try 语句、catch 语句、finally 语句、throw 语句等知识点。 1. try 语句 try 语句用于捕捉异常,避免程序的崩溃。 2. catch 语句 catch 语句用于捕捉异常,并执行相应的处理。 3. finally ...

    Java程序设计期末复习题

    第九个问题考察了Java的异常处理机制,特别是try-catch-finally块的使用。正确的说法是,throw语句后面需要new关键字,否则将导致编译错误,因此答案为B。 10.继承和接口 第十个问题考察了Java的继承和接口机制,...

    Python学习路线图(3).pdf

    * 异常捕获:try-catch-finally、预处理 * 异常类型:语法错误、运行时错误、逻辑错误 正则表达式 * 正则表达式基础:正则表达式语法、标签匹配、常用规则 * 正则表达式应用:字符串匹配、文本处理 网络爬虫 * ...

    java经典面试2010集锦100题(不看你后悔)

    B) 在Java的类中可以有三类内容分别是数据的定义、基本输出语句、函数的定义。 C) Java中的封装就是将对象的数据和操作数据的方法相结合,通过方法将对象的数据和实现细节保护起来。 D) Java语言中的多态的含义可以...

    AspNet MVC 开发技术

    7.2.1 try...catch...finally 153 7.2.2 列出和配置异常 157 7.2.3 异常处理的注意事项 158 7.3 小结 159 7.4 练习 159 7.5 本章要点 159 第8章 面向对象编程简介 161 8.1 面向对象编程的含义 162 8.1.1 对象的含义 ...

    ActionScript开发技术大全

    8.3.1使用try…catch…finally语句 160 8.3.2throw语句主动抛出异常 162 8.3.3处理异常事件 163 8.4异常类型 163 8.4.1异常对象 164 8.4.2异常分类 164 8.4.3自定义异常类型 166 8.5小结 167 第3篇ActionScript3.0...

    Java面试宝典2010版

    45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法...

    超级有影响力霸气的Java面试题大全文档

    1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是...

    轻松学C#(图解版)

    11.1.5 使用try和catch关键字 201 11.2 处理异常 204 11.2.1 使用异常处理错误 204 11.2.2 使用多条catch语句 205 11.2.3 嵌套try块 206 11.2.4 抛出异常 207 11.2.5 重新抛出异常 208 11.2.6 finally语句 210 11.3 ...

    java 面试题 总结

    抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。...

    JAVA面试题最全集

    50.JAVA语言如何进行异常处理,关键字:thorws,throw,try,catch,finally 51.Object类(或者其子类)的finalize()方法在什么情况下被调用? 52.一个“.java”原文件中是否可以包括多个类(不是内部类)? 53.掌握...

Global site tag (gtag.js) - Google Analytics