try...catch...finally执行顺序

 1 package test;
 2
 3 public class TestDemo {
 4
 5     public static String output = "";
 6
 7     public static void main(String[] args) {
 8         foo(0);
 9         foo(1);
10         System.out.println(output);
11     }
12
13     private static void foo(int i) {
14         try {
15             if(i == 1){
16                 throw new Exception();
17             }
18         } catch (Exception e) {
19             output += "2";
20             return;
21         } finally{
22             output += "3";
23         }
24         output += "4";
25
26
27     }
28
29 }

输出的结果

3423
时间: 2024-10-12 08:04:46

try...catch...finally执行顺序的相关文章

[转] try catch finally 执行顺序

结论:1.不管有木有出现异常,finally块中代码都会执行:2.当try和catch中有return时,finally仍然会执行:3.finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的:4.finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值.举例:情况1:try{}

异常处理 try...catch...finally 执行顺序, 以及对返回值得影响

异常处理 try...catch...finally 执行顺序, 以及对返回值得影响 1.不管有没有出现异常,finally块中代码都会执行:2.当try和catch中有return时,finally仍然会执行:3.finally是在return后面的表达式运算后执行的,所以函数返回值是根据返回类型在finally执行前后确定的:4.finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值. (一)   一般情况下,程序执行到try里面的内容一定会

try catch finally的执行顺序

转载自搏击的小船的博文 原文地址:http://www.cnblogs.com/guanjie20/archive/2010/02/14/2350270.html 1.将预见可能引发异常的代码包含在try语句块中.2.如果发生了异常,则转入catch的执行.catch有几种写法:catch这将捕获任何发生的异常.catch(Exception e)这将捕获任何发生的异常.另外,还提供e参数,你可以在处理异常时使用e参数来获得有关异常的信息.catch(Exception的派生类 e)这将捕获派生

java中try{}catch{}和finally{}的执行顺序问题

 今天我给大家讲解一下java的的错误和异常处理机制以及相关异常的执行顺序问题.如有不足的地方,欢迎批评指正~ 1.首相简单介绍一下java中的错误(Error)和异常(Exception) 错误和异常的介绍: 在java.lang软件包中有一个java.lang.Throwable类,这个类是java中所有错误和异常的超类. 在java中错误和异常的继承主要有两个: 分别为Error和Exception 这两个. Error:         是java中所有错误类的父类,就是jvm出现错误,

Java try、catch、finally及finally执行顺序详解(转)

1.为什么要用finally先看一个没有finally的异常处理try-catch语句:假设count为要使用到的资源,并且用完要求释放此资源.那么我们可以把释放资源的语句放到try-catch后执行,当前的程序不管是在执行完try语句块还是catch语句块,都会顺序执行到下面释放资源的语句. int count = 0; //初始化资源 try{ count++; if(count == 1) throw new Exception("Exception in try"); }cat

浅谈Java语言中try{}catch{}和finally{}的执行顺序问题

浅谈Java语言中try{}catch{}和finally{}的执行顺序问题 2019-04-06  PM  13:41:46  1. 不管有没有出现异常,finally块中代码都会执行: 2. 当try和catch中有return时,finally仍然会执行: 3. finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的:

try、catch、finally 执行顺序

在Java程序中,异常处理是重要技术,当处理块中包含return语句时, try.catch.finally的执行顺序如下: 1.无论是否出现异常,finally块中代码都会执行: 2.当try和catch中有return时,finally仍然会执行: 3.finally是在return语句执行之后,返回之前执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally中的代码怎么样,返回的值都不会改变,仍然是之前保存的值),所以函数返回值是在finally执行前就已经确定了:

关于Java中try catch finally throw return的执行顺序问题

try {          normal statement;     //1.          exception occurred;   //2.          return "try";      } catch (Exception ex) {     normal statement;     //3.          return "catch";      } finally {          normal statement;     

java中return与finally的执行顺序

网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的: (1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到. (2)在try块中有System.exit(0);这样的语句,System.exit(0);