try..catch..finally
請問,為什么java入門第三季,1-3的教學視頻中,try..catch..塊,異常打印語句在前,system.out在后,但控制臺執行結果, system輸出在前,異常trace在后呢?
而后面的try..catch..finally, ?前面test方法又變正常了,system.out輸出在trace之后,但test2又反過來了。
請問,為什么java入門第三季,1-3的教學視頻中,try..catch..塊,異常打印語句在前,system.out在后,但控制臺執行結果, system輸出在前,異常trace在后呢?
而后面的try..catch..finally, ?前面test方法又變正常了,system.out輸出在trace之后,但test2又反過來了。
2017-11-09
舉報
2017-11-10
因為這是一個異常鏈,控制臺的第一個異常包含了下面所有異常,下面的異常是引起上面異常的原因,在try{}語句塊中捕獲了異常,就會到catch{}塊中去拋出異常;開始是先拋出算術異常,在輸出“循環拋出異常了”,遇到return語句就跳到finally{}語句塊里,輸出那兩句話,“result”的值已經變成“999”了,然后在返回main()函數中執行后面的語句。
2017-11-15
哈哈,我也只了解這么多了,沒講清楚,不好意思
2017-11-15
其實我的意思是 e.printStackTrace();在system.out.println("循環拋出異常了")語句的前面,為什么輸出結果是:
循環拋出異常了!
異常:*********(java異常信息)