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

为什么出现异常

为什么前两个会出现异常,而最后一个result却没有异常

提问者:qq_我想我遇到你了_0 2017-10-18 21:27

个回答

  • qq_我想我遇到你了_0
    2017-10-20 11:42:47

    那请问为什么第三个程序不会出现红字呢,异常了不应该会出现红字提示吗

  • 人间卧底666
    2017-10-19 10:31:23

    test3里的result也抛出了异常。系统执行流程是这样的:首先,执行try里的while loop,当divide =1时,通过计算得到结果并把结果381赋值给result,然后循环继续执行while loop, 这时divide-1=0,系统发现除数不能等于0,所以抛出异常,但result的值任然是381因为它并没有被改变。在test1 和 test2,他后来分别又在catch或finally语句中对result的结果赋值,而test3是直接返回result没有对它进行任何赋值,所以我们看到运行三个test时result是不一样的。但三个test其实都是抛出了异常的,最大的原因是你看test3执行了catch,说明异常抛出。