为什么前两个会出现异常,而最后一个result却没有异常
那请问为什么第三个程序不会出现红字呢,异常了不应该会出现红字提示吗
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,说明异常抛出。