try、catch、finally的执行顺序
2012-09-25 16:59
267 查看
这个小程序的打印结果是什么? 还好我做对了, 不过借此也复习一下try、catch、finally的执行顺序
import java.io.IOException;
public class ExceptionTest {
class MyException extends Exception{
}
String sf1() {
int i = 0;
try{
if(i==0)
throw new MyException();
System.out.println("IN");
return null;
}catch(MyException e){
System.out.println("CATCH");
}finally{
System.out.println("FINALLY");
}
System.out.println("OUT");
return null;
}
public static void main(String[] args){
new ExceptionTest().sf1();
}
执行结果是:
CATCH
FINALLY
OUT
概括成几个要点:
1. 在try代码块中如果发生错误,将抛出exception,停止执行try代码块中后面的代码,然后执行catch块的代码,之后执行finally块的代码,如果catch块和finally块的代码都没有return语句,那么将执行finally块后面的代码。
2. 如果try代码块中未发生异常,那么先执行完try代码块的所有代码,再执行finally块的代码,如果try代码块有return语句,那么在这之前先要执行finally代码块的代码, 如果try和finally都没有return语句,那么再执行finally块后面的代码。
3. 在一个方法中没有被捕获得异常总是会向上影响调用它的方法,这种影响会继续向上延伸到调用该方法的各级,直到它被捕获,或者到达最上层的main()方法。如果在main中还没有捕获异常,程序就会停止运行。
import java.io.IOException;
public class ExceptionTest {
class MyException extends Exception{
}
String sf1() {
int i = 0;
try{
if(i==0)
throw new MyException();
System.out.println("IN");
return null;
}catch(MyException e){
System.out.println("CATCH");
}finally{
System.out.println("FINALLY");
}
System.out.println("OUT");
return null;
}
public static void main(String[] args){
new ExceptionTest().sf1();
}
执行结果是:
CATCH
FINALLY
OUT
概括成几个要点:
1. 在try代码块中如果发生错误,将抛出exception,停止执行try代码块中后面的代码,然后执行catch块的代码,之后执行finally块的代码,如果catch块和finally块的代码都没有return语句,那么将执行finally块后面的代码。
2. 如果try代码块中未发生异常,那么先执行完try代码块的所有代码,再执行finally块的代码,如果try代码块有return语句,那么在这之前先要执行finally代码块的代码, 如果try和finally都没有return语句,那么再执行finally块后面的代码。
3. 在一个方法中没有被捕获得异常总是会向上影响调用它的方法,这种影响会继续向上延伸到调用该方法的各级,直到它被捕获,或者到达最上层的main()方法。如果在main中还没有捕获异常,程序就会停止运行。
相关文章推荐
- try catch finally的执行顺序
- java异常处理二——try-catch-finally执行顺序
- Java学习笔记__异常机制_try_catch_finally_return执行顺序
- Java中try-catch-finally-return的执行顺序
- try catch finally的执行顺序到底是怎样的?
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序(最有说服力的总结)
- 有return的情况下try catch finally的执行顺序(最有说服力的总结)
- 有return的情况下try catch finally的执行顺序
- Java中的try-catch-finally-return的执行顺序
- java 中 try catch finally 语句的执行顺序
- try-catch-finally执行顺序及多return语句效果
- try catch finally return 的执行顺序
- try catch finally与return的执行顺序
- 有return语句情况下,try-catch-finally的执行顺序
- 含有return 的try catch finally的执行顺序
- 关于Java中try-catch-finally-return的执行顺序
- 有return的情况下try catch finally的执行顺序
- 有return的情况下try catch finally的执行顺序