如果我們調(diào)用了一個(gè)方法,而這個(gè)方法throws了一個(gè)異常,那么我們應(yīng)該做什么呢?毫無(wú)疑問(wèn),eclipse給了我們最佳的的答案,它會(huì)提示你:繼續(xù)拋出(throws)或者現(xiàn)場(chǎng)解決(try...catch)。這道理很簡(jiǎn)單,因?yàn)閑clipse就是教導(dǎo)我們的。但是假如發(fā)生了例外:如上圖,save方法(具體功能不作介紹,與問(wèn)題無(wú)關(guān))明明拋出了一個(gè)異常。但是我們調(diào)用的時(shí)候,竟然沒(méi)有提示我們對(duì)異常進(jìn)行處理。為了確定這個(gè)方法確實(shí)會(huì)拋出異常,我反編譯得到源碼:的確拋出異常,但是為什么,eclipse沒(méi)有提示處理異常,我很奇怪,各位大神如果懂,請(qǐng)指點(diǎn)一下。
4 回答

donlv
TA貢獻(xiàn)13條經(jīng)驗(yàn) 獲得超2個(gè)贊
java提供了兩種異常機(jī)制。一種是運(yùn)行時(shí)異常(RuntimeExepction),一種是檢查式異常(checked execption)。
檢查式異常:我們經(jīng)常遇到的IO異常及sql異常就屬于檢查式異常。對(duì)于這種異常,java編譯器要求我們必須對(duì)出現(xiàn)的這些異常進(jìn)行catch 所以 面對(duì)這種異常不管我們是否愿意,只能自己去寫一堆catch來(lái)捕捉這些異常。
運(yùn)行時(shí)異常:我們可以不處理。當(dāng)出現(xiàn)這樣的異常時(shí),總是由虛擬機(jī)接管。比如:我們從來(lái)沒(méi)有人去處理過(guò)NullPointerException異常,它就是運(yùn)行時(shí)異常,并且這種異常還是最常見的異常之一。

思君滿月
TA貢獻(xiàn)82條經(jīng)驗(yàn) 獲得超36個(gè)贊
謝謝,我做過(guò)實(shí)驗(yàn),不過(guò)每次都是拋出的Exception 所以要求處理,搞的這么麻煩。
添加回答
舉報(bào)
0/150
提交
取消