try,catch和finally的执行顺序
来源:互联网 发布:机顶盒有必要买吗 知乎 编辑:程序博客网 时间:2024/05/18 03:52
在java编程中,经常会遇到try,catch,finally等语句,那么这些语句的执行顺序是什么呢,下面我们通过几个程序来分析一下:
public class TryCatchFinally {
public static void main(String[] args) {
System.out.println(f1());
System.out.println("###################");
System.out.println(f2());
System.out.println("###################");
System.out.println(f3());
System.out.println("###################");
System.out.println(f4());
}
/**try语句块无错误,有finally语句
*
* @return
*/
@SuppressWarnings("finally")
private static int f1(){
try{
int a=1/1;
System.out.println("try");
return 0;
}catch(Exception e){
System.out.println("catch");
return 1;
}finally{
System.out.println("finally");
return 2;
}
}
/**
* try语句块有错误,有finally语句
* @return
*/
@SuppressWarnings("finally")
private static int f2(){
try{
int a=1/0;
System.out.println("try");
return 0;
}catch(Exception e){
System.out.println("catch");
return 1;
}finally{
System.out.println("finally");
return 2;
}
}
/**
* try语句块无错误,没有finally语句
* @return
*/
private static int f3(){
try{
int a=1/1;
System.out.println("try");
return 0;
}catch(Exception e){
System.out.println("catch");
return 1;
}
}
/**
* try语句块有错误,没有finally语句
* @return
*/
private static int f4(){
try{
int a=1/0;
System.out.println("try");
return 0;
}catch(Exception e){
System.out.println("catch");
return 1;
}
}
}
执行函数f1输出的结果:
try
finally
2
说明没有执行try语句的return 0,执行的是finally中的return 2。
执行函数f2输出的结果:
catch
finally
2
由于try语句块有错误,所以执行catch语句,但是并没有执行catch语句中的return 1,而是接着执行finally中的语句,并return。
执行函数f3输出的结果:
try
0
try语句块中没有错误,不执行catch语句
执行函数f4输出的结果:
catch
1
try语句块中报错,执行catch语句,没有执行try语句中的return 0
- try,catch和finally的执行顺序
- try和catch以及finally执行顺序
- 捕捉异常中try、catch和finally的执行顺序
- java中try{}catch{}和finally{}的执行顺序问题
- java中try{}catch{}和finally{}的执行顺序问题
- java中try{}catch{}和finally{}的执行顺序问题
- try, catch, finally, return的执行顺序
- try、catch、finally、return的执行顺序
- try、catch、finally、return的执行顺序
- try catch finally return 的执行顺序
- try、catch、finally、return的执行顺序
- Java try catch finally的执行顺序
- try catch finally return 的执行顺序
- try、catch、finally的执行顺序
- try catch finally 的执行顺序
- Java try catch finally的执行顺序
- Java try catch finally的执行顺序
- Java try catch finally的执行顺序
- Android 使用反射获取系统ID值 com.android.internal.R.id.*
- NYOJ 27-水池数目(简单DFS)
- 运营 Yu 渠道
- 有关Qt 32和64位
- 盒子模型和CSS3的box-sizing属性
- try,catch和finally的执行顺序
- linaCharts开发笔记:面拉伸成体
- 斜率优化
- Lua 删除UTf-8编码中的特殊字符
- day12_01文件
- 牛客网---2016---蘑菇街最大间隔
- leetcode 390. Elimination Game
- Python Mysqldb使用简介
- 欧拉函数:HDU1787-GCD Again(欧拉函数的模板)