try..catch..finally

来源:1-3 Java中通过案例学习 try...catch...finally

慕九州2537185

2017-11-09 22:23

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

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

写回答 关注

3回答

  • Jonas1995
    2017-11-10 13:04:15
    已采纳

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

    慕九州253...

    虽然还是没弄明白,但非常感谢您的回答!

    2017-11-15 17:13:36

    共 1 条回复 >

  • Jonas1995
    2017-11-15 17:16:28

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

  • 慕九州2537185
    2017-11-15 17:15:42

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

    循环抛出异常了!

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

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题