黑马程序员技术交流社区

标题: 调用下面的方法,得到的返回值是什么 [打印本页]

作者: pan1564335    时间: 2015-9-25 14:55
标题: 调用下面的方法,得到的返回值是什么
1.        public int getNum(){
2.             try {
3.                int a = 1/0;
4.                return 1;
5.            } catch (Exception e) {
6.                return 2;
7.            } finally{
8.                return 3;
9.            }
10.        }

作者: liufeibo    时间: 2015-9-25 16:44
调用这个方法得到的返回值是3
作者: 381890216    时间: 2015-9-25 16:55
  1. public class Duoxiancheng{
  2.         public static void main(String[] args){
  3.         
  4.              try {
  5.                 int a = 1/0;
  6.                 System.out.println(1);
  7.             } catch (Exception e) {
  8.                     System.out.println(2);
  9.             } finally{
  10.                     System.out.println(3);
  11.             }
  12.         
  13.         }}
复制代码


输出
2
3
作者: 天涯莫名    时间: 2015-9-25 17:57
不是2么?

作者: pan1564335    时间: 2015-11-24 09:09
天涯莫名 发表于 2015-9-25 17:57
不是2么?

应该是2,因为返回通道已经建立,值不会改变
作者: Camwly    时间: 2015-11-24 09:38
怎么感觉是3的
作者: 李永佳    时间: 2015-11-24 09:50
确实是3呐
作者: 龙sama    时间: 2015-11-24 10:30
应该是 2 3吧。出现错误肯定返回2,然后再finally返回3.
作者: javen_oi    时间: 2015-11-24 13:15
本帖最后由 javen_oi 于 2015-11-24 13:22 编辑

2啊,出现错误就会执行catch中的return,遇到return就返回了不会再执行了啊。finally就不会执行了,用eclipse写的话会直接提示你finall没有用的
作者: 萧未然    时间: 2015-11-24 20:21
异常处理语句中,finally语句块肯定是会执行的,不过会有一个不妨碍编译和运行的警告,什么意思?
作者: yuxiangxin    时间: 2015-11-24 22:18
jdk1.7 返回3 C:\QQ截图20151124221733.png

作者: 隔壁马良    时间: 2015-11-24 22:25
这个是3吧
作者: Tmac90301    时间: 2015-11-24 22:41
顿时我就懵逼了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2