Java中的异常执行顺序
2015-08-13 13:59
447 查看
finally 模块会在try模块的return执行之前执行
例如
public class Test {
public static int testFinally1() {
int result = 1;
try {
result = 2;
System.out.println("Try "+result);
return result;
} catch (Exception e) {
return 0;
} finally {
result = 3;
System.out.println("finally "+result);
System.out.println("execute finally 1");
}
}
public static StringBuffer testFinally2() {
StringBuffer s = new StringBuffer("Hello");
try {
return s;
} catch (Exception e) {
return null;
} finally {
s.append(" World");
System.out.println("execute finally 2");
}
}
public static void main(String[] args) {
int resultVal = testFinally1();
System.out.println(resultVal);
StringBuffer resultRef = testFinally2();
System.out.println(resultRef);
}
}
result:
Try 2
finally 3
execute finally 1
2
execute finally 2
Hello World
2:如果有异常,则finally模块不会被执行
3:如果在try模块中强制执行了推出, 则finally模块也不会被执行
例如
public class Test {
public static int testFinally1() {
int result = 1;
try {
result = 2;
System.out.println("Try "+result);
return result;
} catch (Exception e) {
return 0;
} finally {
result = 3;
System.out.println("finally "+result);
System.out.println("execute finally 1");
}
}
public static StringBuffer testFinally2() {
StringBuffer s = new StringBuffer("Hello");
try {
return s;
} catch (Exception e) {
return null;
} finally {
s.append(" World");
System.out.println("execute finally 2");
}
}
public static void main(String[] args) {
int resultVal = testFinally1();
System.out.println(resultVal);
StringBuffer resultRef = testFinally2();
System.out.println(resultRef);
}
}
result:
Try 2
finally 3
execute finally 1
2
execute finally 2
Hello World
2:如果有异常,则finally模块不会被执行
3:如果在try模块中强制执行了推出, 则finally模块也不会被执行
相关文章推荐
- java中的异常以及 try catch finally以及finally的执行顺序
- Java异常处理---finally和return的执行顺序
- Java异常时,finally 与return 执行顺序
- java中的异常以及 try catch finally以及finally的执行顺序
- 关于Java异常类中try-catch执行顺序的笔记
- Java中异常处理-finally和return执行顺序
- Java异常捕获之try-catch-finally-return的执行顺序-转载
- Java异常----try、catch和finally块中的return执行顺序
- java中异常 try,catch,finally在不同情况下的执行顺序
- Java异常处理机制以及try-catch-finally-return执行顺序
- java异常处理二——try-catch-finally执行顺序
- Java异常捕获之try-catch-finally-return的执行顺序
- Java异常捕获之try-catch-finally-return的执行顺序
- java中异常处理finally和return语句的执行顺序
- Java异常机制--try catch finally 执行顺序详解
- java异常语句的执行顺序
- Java异常处理机制以及try-catch-finally-return执行顺序
- java中异常处理finally和return语句的执行顺序
- Java异常发生时程序的执行顺序
- Java异常捕获之try-catch-finally-return的执行顺序