`

java Exception return 值的讨论

阅读更多
今天来分析下java 中Exception的处理方式,我们都知道,它执行的顺序如下:

1. try:检查是否有异常发生;
2. 如果有,则由catch来捕获;
3. 不管是否有异常发生,都会进入到finally里执行。


先记住下面的结论:

1. throw 后面的代码是不会执行的。
2. 不管是否有异常,都会执行finally。
3. 不管有多少个return, 只会执行finally里的return。


例1.
public class Demo {
	public static int doexception(){
		try{
		   return 1;
		}catch(Exception e){
			System.out.println("catch exception");
			return 0;
		}finally{
			System.out.println("finally ....");
		}
	}
	public static void main(String args[]){
		System.out.println("return value:"+doexception());
	}
}


输出结果:
finally ....
return value:1


例2.

public class Demo {
	public static int doexception(){
		try{
		   throw new Exception("aaa");
		}catch(Exception e){
			System.out.println("catch exception");
			return 0;
		}finally{
			System.out.println("finally ....");
		}
	}
	public static void main(String args[]){
		System.out.println("return value:"+doexception());
	}
}


输出结果:
catch exception
finally ....
return value:0


例3.

public class Demo {
	public static int doexception(){
		try{
		   throw new Exception("aaa");
		}catch(Exception e){
			System.out.println("catch exception");
			return 0;
		}finally{
			System.out.println("finally ....");
			return 1;
		}
	}
	public static void main(String args[]){
		System.out.println("return value:"+doexception());
	}
}


输出结果:
catch exception
finally ....
return value:1


分享到:
评论

相关推荐

    java程序是怎么操作数据库的,可以以常用据库为例,求详细解答,最好能举例。

    catch(java.lang.Exception ex) { ex.printStackTrace(); } } } 实例2如下: //import com.microsoft.*; //注意:在java与sql server 连接时不需要这个包,其他书上说这个包是必需的,这个问题有待进一步...

    java设计模式CatalogDAOFactory是典型的工厂方法

    我们以Jive的ForumFactory为例,这个例子在前面的Singleton模式中我们讨论过,现在再讨论其工厂模式: public abstract class ForumFactory {  private static Object initLock = new Object();  private static ...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    本文不打算讨论如何编写 Flex 界面,而是把重点放在如何实现远程调用。 为了能在 Flex 中实现远程调用,我们需要定义一个 RemoteObject 对象。可以通过 ActionScript 编码创建该对象,也可以直接在 MXML 中定义一个...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    本文不打算讨论如何编写 Flex 界面,而是把重点放在如何实现远程调用。 为了能在 Flex 中实现远程调用,我们需要定义一个 RemoteObject 对象。可以通过 ActionScript 编码创建该对象,也可以直接在 MXML 中定义一...

    配置MSSQL数据源连接步骤

    配置MSSQL数据源连接步骤 [很卡,设置下了分辨率了] ...涉及所有关于java方面的编程均可讨论 本人目前涉及MYSQL ORACLE LINUX AJAX SSH XML....... 好了,教程就到这,88 本人邮箱:zhuseahui@yahoo.com.cn

    二十三种设计模式【PDF版】

    所以很少存在简单重复的工作,加上Java 代码的精炼性和面向对象纯洁性(设计模式是 java 的灵魂),编程工作将变成一个让你时刻 体验创造快感的激动人心的过程. 为能和大家能共同探讨"设计模式",我将自己在学习中的心得...

    c#学习笔记.txt

    如前所述,我是一个狮子座男人,一度我认为学习Java会使我看起来与众不同,可是几个月以后我放弃了这个选择,我看了论坛里关于这两种语言孰优孰劣的讨论,最终选择了C#,请不要问我为何做出这样的选择,很多人认为...

Global site tag (gtag.js) - Google Analytics