A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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.        }

12 个回复

倒序浏览
调用这个方法得到的返回值是3
回复 使用道具 举报
  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
回复 使用道具 举报
不是2么?
回复 使用道具 举报

应该是2,因为返回通道已经建立,值不会改变
回复 使用道具 举报
怎么感觉是3的
回复 使用道具 举报
确实是3呐
回复 使用道具 举报
龙sama 中级黑马 2015-11-24 10:30:29
8#
应该是 2 3吧。出现错误肯定返回2,然后再finally返回3.
回复 使用道具 举报
本帖最后由 javen_oi 于 2015-11-24 13:22 编辑

2啊,出现错误就会执行catch中的return,遇到return就返回了不会再执行了啊。finally就不会执行了,用eclipse写的话会直接提示你finall没有用的
回复 使用道具 举报
异常处理语句中,finally语句块肯定是会执行的,不过会有一个不妨碍编译和运行的警告,什么意思?
回复 使用道具 举报
jdk1.7 返回3 C:\QQ截图20151124221733.png
回复 使用道具 举报
这个是3吧
回复 使用道具 举报
顿时我就懵逼了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马