为了账号安全,请及时绑定邮箱和手机立即绑定

try..catch..finally

请问,为什么java入门第三季,1-3的教学视频中,try..catch..块,异常打印语句在前,system.out在后,但控制台执行结果, system输出在前,异常trace在后呢?

而后面的try..catch..finally,  前面test方法又变正常了,system.out输出在trace之后,但test2又反过来了。

正在回答

3 回答

因为这是一个异常链,控制台的第一个异常包含了下面所有异常,下面的异常是引起上面异常的原因,在try{}语句块中捕获了异常,就会到catch{}块中去抛出异常;开始是先抛出算术异常,在输出“循环抛出异常了”,遇到return语句就跳到finally{}语句块里,输出那两句话,“result”的值已经变成“999”了,然后在返回main()函数中执行后面的语句。

0 回复 有任何疑惑可以回复我~
#1

慕九州2537185 提问者

虽然还是没弄明白,但非常感谢您的回答!
2017-11-15 回复 有任何疑惑可以回复我~

哈哈,我也只了解这么多了,没讲清楚,不好意思

0 回复 有任何疑惑可以回复我~

其实我的意思是 e.printStackTrace();在system.out.println("循环抛出异常了")语句的前面,为什么输出结果是:

循环抛出异常了!

异常:*********(java异常信息)

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

try..catch..finally

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信