自我总结,有什么不足或好的方案,希望大家给予纠正,感激不尽!

目的:try catch finaly的顺序执行,和大家复习一遍。

方法:debug来确认执行顺序。(需要引入junit包)

废话不多说,debug是检验代码执行顺序的唯一标准,哈哈...

测试一:

新建测试类:ExceptionTest

package com.core.test007;

import org.junit.Test;

public class ExceptionTest {

    @Test
public void main(){
put(test007());
} public int test007(){
int a = 10;
put("normal");
try {
put("try");
// a = 1 / 0;
put("try return before");
return a;
}catch (Exception e){
put("catch"); } finally {
put("finally");
}
put("method return before");
return 0;
} public static void put(Object obj) {
System.out.println(obj);
} }

打印出的信息为

normal
try
try return before
finally
10

debug了一下 ,执行语句的顺序为:

  1)  try体的语句,打印"try"

  2)  在try体中,打印 "try return before"

  3)  跳入finaly体,打印"finaly"

  4)  再次执行try体中的return语句

  5)  直接跳出函数体 返回到主函数体,打印 10

测试二:  

将上述ExceptionTest类代码中[ int a = 1 / 0 ; ]之前的注释删除,保存再次run则打印的信息为:

normal
try
catch
finally
method return before
0

debug了一下 ,执行语句的顺序为:

  1)  try体的语句,打印 "try"

  2) 执行语句 [ int a = 1 / 0 ; ]时,进入catch体,打印 "catch"

  3)  跳入finaly体,打印 "finaly"

  5)  跳出finaly体,打印 "method return before"

  6)  执行return 0

  7)  返回主函数,打印 0

总结:1. finaly体任何情况下都会执行。

     2. 当执行到try体中存在异常的语句(本案例中的异常语句为:[ int a = 1 / 0 ; ])时,则在try体中异常语句之后的语句在本次执行过程中都不会再被执行,而是进入catch语句。

          

Java中的try catch finaly先后调用顺序的更多相关文章

  1. java中构造代码块、方法调用顺序问题

    1. 继承的概念 继承在本职上是特殊——一般的关系,即常说的is-a关系.子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法. 2. 继承中的初始化顺序 从类的结构上而言,其 ...

  2. [转载]java中try 与catch的使用

    留着以后看 原文地址:与catch的使用">java中try 与catch的使用作者:碌碌如玉 try{ //代码区 }catch(Exception e){ //异常处理 } 代码区 ...

  3. 【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析

    这一篇我们将会介绍java中try,catch,finally的用法 以下先给出try,catch用法: try { //需要被检测的异常代码 } catch(Exception e) { //异常处 ...

  4. java中多线程执行时,为何调用的是start()方法而不是run()方法

    Thead类中start()方法和run()方法的区别 1,start()用来启动一个线程,当调用start()方法时,系统才会开启一个线程,通过Thead类中start()方法来启动的线程处于就绪状 ...

  5. Java 中 try、catch、finally 语句块的执行顺序

    假设代码顺序书写如下:try → catch → finally → 其他代码 则: 1.正常执行顺序:try → catch → finally → 其他代码 2.try,catch和finally ...

  6. Java中关于HashMap的元素遍历的顺序问题

    Java中关于HashMap的元素遍历的顺序问题 今天在使用如下的方式遍历HashMap里面的元素时 1 for (Entry<String, String> entry : hashMa ...

  7. java中通过反射获取方法并且调用(getMethod和invoke深入)实践

    为了支持业务的快速变更,往往采用可配置的方式,将业务逻辑的处理部分配置在数据库中或者XMl文件里.配置什么,如何配置才更灵活,That's a problem. 以数据库配置为例(xml相同),在数据 ...

  8. java中try 与catch的使用

    (2011-10-08 17:08:43) 转载▼ 标签: 杂谈 分类: Java try{//代码区}catch(Exception e){//异常处理}代码区如果有错误,就会返回所写异常的处理. ...

  9. 你真的理解Java中的try/catch/finally吗?

    看几个例子,回顾一下执行顺序 例子1 无异常,finally中的return会导致提前返回 public static String test() {    try {        System.o ...

随机推荐

  1. 学Java必看,不看的人都后悔了

    什么是Java? Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向 ...

  2. Python_day1

    一.HelloWorld >>>print("Hello World!") >>>Hello World! 二.变量    1.什么是变量 : ...

  3. junit测试模板 unit-test

    一个项目能否发布上线,重要的环节就是测试.经过集成测试.性能测试.压力测试等不断循环的测试过后依据测试报告来确定上线.这些由专业的测试人员来完成,因此会导致程序开发者对自身的单元测试的弱化.若在代码中 ...

  4. android文件管理器源码、斗鱼直播源码、企业级erp源码等

    Android精选源码 文件清理管理器 自定义水平带数字的进度条以及自定义圆形带数字的进度条 利用sectionedRecyclerViewAdapter实现分组列表的recyclerView源码 流 ...

  5. SLAM入门之视觉里程计(6):相机标定 张正友经典标定法详解

    想要从二维图像中获取到场景的三维信息,相机的内参数是必须的,在SLAM中,相机通常是提前标定好的.张正友于1998年在论文:"A Flexible New Technique fro Cam ...

  6. Vue-cli搭建完项目,各文件解释

    脚手架vue-cli搭建完成后,会生成一些文件,总结学习一下这些文件是做什么用的:1.一级目录: build和config文件夹是wbepack配置的文件夹: node_modules是在我npm i ...

  7. [国嵌攻略][162][USB协议分析]

    USB设备逻辑结构 在USB设备的逻辑组织中,包含设备.配置.接口和端点4个层次.设备通常有一个或多个配置,配置通常有一个或多个接口,接口通常有零个或多个端点. USB设备描述符 当我们把USB设备( ...

  8. Runtime之NSCoding的自动归档、接档

    为什么要有Runtime的NSCoding的自动归档.接档 大家所熟知的方法 //归档方法 - (void)encodeWithCoder:(NSCoder *)aCoder { //当学生被归档,学 ...

  9. MLlib--SVD算法

    转载请标明出处http://www.cnblogs.com/haozhengfei/p/4db529fa9f4c042673c6dc8218251f6c.html SVD算法 1.1什么是SVD?   ...

  10. Oracle_基本函数查询综合

    Oracle_基本函数查询综合 --[1]查询出每各月倒数第三天受雇的所有员工 select;   --[2]找出早于30年前受雇的员工 select>; select; select;     ...