问答详情
源自:1-3 Java中通过案例学习 try...catch...finally

为什么我的输出结果不是999,而是381?(原谅我,我视频没看完发的。。。额)

为什么我的输出结果不是999,而是381?

java.lang.ArithmeticException: / by zero
	at com.imooc2.TryCatchTest.test(TryCatchTest.java:28)
	at com.imooc2.TryCatchTest.main(TryCatchTest.java:9)
java.lang.ArithmeticException: / by zero
	at com.imooc2.TryCatchTest.test2(TryCatchTest.java:49)
	at com.imooc2.TryCatchTest.main(TryCatchTest.java:12)
循环抛出异常了!!!
test()方法执行完毕!返回值为:-1
循环抛出异常了!!!
这是finally!!哈哈!!
我是Result!!我的值是:381
我想大声告诉你!test2执行完毕!

我的test2()是如下,一样的啊

public int test2() {
		int divider = 10;
		int result = 100;
		try {
			while (divider > -1) {
				divider--;
				result = result + 100 / divider;
			}
			return result;
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("循环抛出异常了!!!");
			return 999;
		}finally{
			System.out.println("这是finally!!哈哈!!");
			System.out.println("我是Result!!我的值是:" + result);
		}
	}


提问者:Isayes 2015-02-06 20:31

个回答

  • 可乐维他奶
    2015-02-06 21:00:29
    已采纳

    你是不是搞错了?如果要输出结果到控制台的话是需要system.out.println()来输出结果,但是你却使用了retrun 999,这个结果是返回值,你没有打印该返回值,你可以在代码int result2 = tct.test2();的语句下面写上System.out.println(result2);看看是不是这样的,还有以后提问的话,希望你把源码贴出来,那样的话别人就会复制过去帮你调试,而不是图片的方式贴出来,谁帮你看着图片一个字母的敲出来???还帮你测试?

  • Yessi
    2015-10-15 21:33:53

    我也有同样的问题!!!求解释

  • Isayes
    2015-02-06 20:59:29

    其实,是要把那句return 999;改成

    return result=999;

    那为什么结果是会存在且为381呢?who knows?

  • Isayes
    2015-02-06 20:35:44

    http://img.mukewang.com/54d4b4a400010eee05540341.jpg

    截图,跟编译器有关系吗?

    代码如下

    http://img.mukewang.com/54d4b5150001a92d06660868.jpg