第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java運行時異常的捕獲順序

java運行時異常的捕獲順序

侃侃爾雅 2018-07-14 19:14:43
在一個方法中,在某條語句下拋出一個運行時異常,例如:public static void main(String[] args) {System.out.print("end of method");throw new RuntimeException("problem2");}發(fā)現(xiàn)第一種情況是end of methodException in thread "main" java.lang.RuntimeException: problem2at Thread2.main(Thread2.java:16);第二種是Exception in thread "main" java.lang.RuntimeException: problem2at Thread2.main(Thread2.java:14)end of method;第二種情況按照JVM管理運行時異常,不是不應該出現(xiàn)么,異常已經(jīng)拋出,為什么還會打印,異常拋出后,線程應該已經(jīng)退出,不會打印了,這個是為什么?還有就是運行時異常在打印語句之后,為什么會在打印語句執(zhí)行之前就拋出了異常。
查看完整描述

1 回答

?
白板的微信

TA貢獻1883條經(jīng)驗 獲得超3個贊

這個問題其實很簡單,從理論上講一定是先打印“end of method",然后拋出運行時異常,由jvm接收異常打印到標準輸出流。
但是這里存在一個問題,一個是標準輸出流、一個是標準錯誤流。
我們知道java中的流特點:有序、讀完就沒了。輸入到標準輸出流的數(shù)據(jù)一定都是有序的,同樣在標準錯誤流也是有序的,但是這兩個流同時打到控制臺,就可能會亂。
控制臺是按行打印,所以可能會錯行,說白了這是一個多線程打印的問題,先后順序都不確定的。

查看完整回答
1 反對 回復 2018-08-05
  • 1 回答
  • 0 關(guān)注
  • 1071 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號