Finally关键字和return的研究
来源:互联网 发布:万网域名证书查询 编辑:程序博客网 时间:2024/06/13 08:35
今天在帮朋友整理面试总结的时候,遇到一个关于Finally关键字和return的问题,所以我用代码研究了一下:
一共研究了5种情况
package rrr;
public class Fytest {
public int test(String string){
int b=0;
try {
//这里的a为了实现抛异常
int a=Integer.valueOf(string);
b++;
System.out.println("try块里的b的值"+b);
return b;
} catch (Exception e) {
throw new RuntimeException("类转化异常");
}finally {
b++;
System.out.println("finally块里的b的值"+b);
return b;
}
}
public static void main(String[] args) {
Fytest fytest=new Fytest();
int num=fytest.test("0");
System.out.println("最后返回的值"+num);
}
}
第一种(try和finally中有return)——try块里的b的值1,finally块里的b的值2,最后返回的值2
——————————————————————
public int test(String string){
int b=0;
try {
//这里的a为了实现抛异常
int a=Integer.valueOf(string);
b++;
System.out.println("try块里的b的值"+b);
//return b;
} catch (Exception e) {
throw new RuntimeException("类转化异常");
}finally {
b++;
System.out.println("finally块里的b的值"+b);
return b;
}
}
第二种(finally中有return)——try块里的b的值1,finally块里的b的值2,最后返回的值2
————————————————————————
public int test(String string){
int b=0;
try {
//这里的a为了实现抛异常
int a=Integer.valueOf(string);
b++;
System.out.println("try块里的b的值"+b);
return b;
} catch (Exception e) {
throw new RuntimeException("类转化异常");
}finally {
b++;
System.out.println("finally块里的b的值"+b);
//return b;
}
}
第三种(try中有return)——try块里的b的值1,finally块里的b的值2,最后返回的值1
————————————————————————
package rrr;
public class Fytest {
public int test(String string){
int b=0;
try {
//这里的a为了实现抛异常
int a=Integer.valueOf(string);
b++;
System.out.println("try块里的b的值"+b);
//return b;
} catch (Exception e) {
throw new RuntimeException("类转化异常");
}finally {
b++;
System.out.println("finally块里的b的值"+b);
return b;
}
}
public static void main(String[] args) {
Fytest fytest=new Fytest();
int num=fytest.test("s");
System.out.println("最后返回的值"+num);
}
}
第四种(这次走catch块,finally中有return)——finally块里的b的值1,最后返回的值1
————————————————————————
public int test(String string){
int b=0;
try {
//这里的a为了实现抛异常
int a=Integer.valueOf(string);
b++;
System.out.println("try块里的b的值"+b);
return b;
} catch (Exception e) {
throw new RuntimeException("类转化异常");
}finally {
b++;
System.out.println("finally块里的b的值"+b);
//return b;
}
}
第五种(这次走catch块,try中有return)——finally块里的b的值1
Exception in thread "main" java.lang.RuntimeException: 类转化异常
at rrr.Fytest.test(Fytest.java:14)
at rrr.Fytest.main(Fytest.java:24)
- Finally关键字和return的研究
- return和finally的使用
- 研究try catch finally return
- JAVA中try,catch,finally的return研究
- finally 和 return 的次序问题。
- try和finally里的return
- try,finally和return的运行顺序
- JAVA中finally和return的故事
- Java finally 和 return 的关系
- return和finally使用
- return和finally使用
- 关于return和finally
- return 和finally
- Java中try{return} finally中return 和finally的执行顺序
- continue,break,return和finally的用法和实例说明
- try catch finally 和return
- try{}中return和finally{}
- try-catche-finally和return
- 2017 ACM/ICPC Asia Regional Qingdao Online 1001/HDUOJ 6206 Apple
- (四)数据结构之线性表的简单应用:多项式求和
- 事件分发
- SQL中存储过程和函数的区别
- C++扩展数据类型
- Finally关键字和return的研究
- 题目56-阶乘因式分解(一)
- 使用动画的注意事项
- python的标准输入输出
- Git学习日记(5)
- 【模式】の基础——设计模式
- [LeetCode] 5. Longest Palindromic Substring
- 【FirstKotlinApp】自定义Behavior实现布局协同
- 插入排序