慕九州2537185
2017-11-09 22:23
请问,为什么java入门第三季,1-3的教学视频中,try..catch..块,异常打印语句在前,system.out在后,但控制台执行结果, system输出在前,异常trace在后呢?
而后面的try..catch..finally, 前面test方法又变正常了,system.out输出在trace之后,但test2又反过来了。
因为这是一个异常链,控制台的第一个异常包含了下面所有异常,下面的异常是引起上面异常的原因,在try{}语句块中捕获了异常,就会到catch{}块中去抛出异常;开始是先抛出算术异常,在输出“循环抛出异常了”,遇到return语句就跳到finally{}语句块里,输出那两句话,“result”的值已经变成“999”了,然后在返回main()函数中执行后面的语句。
哈哈,我也只了解这么多了,没讲清楚,不好意思
其实我的意思是 e.printStackTrace();在system.out.println("循环抛出异常了")语句的前面,为什么输出结果是:
循环抛出异常了!
异常:*********(java异常信息)
Java入门第三季
409792 学习 · 4340 问题
相似问题
回答 3
回答 2