2 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊
java異常一般分為Checked
異常和Runtime
異常,所有RuntimeException
類(lèi)及其子類(lèi)的實(shí)例被稱(chēng)為Runtime
異常,不屬于該范疇的異常則被稱(chēng)為CheckedException
。
Java認(rèn)為Checked
異常都是可以被處理的異常,所以Java程序必須顯示處理Checked異常。如果程序沒(méi)有處理Checked
異常,該程序在編譯時(shí)就會(huì)發(fā)生錯(cuò)誤無(wú)法編譯。
而RuntimeException
異常如果沒(méi)有顯示的捕獲處理則由系統(tǒng)自動(dòng)檢測(cè)并將它們交給缺省的異常處理程序。JSONException
應(yīng)該是RuntimeException
的子類(lèi),可以不用顯式的對(duì)它try...catch或者throws.如果沒(méi)有對(duì)該異常的處理會(huì)交給jvm處理。
而你自己寫(xiě)的異??隙ㄊ菍儆贑hecked異常,被認(rèn)為是可以避免的異常,必須try...catch或者顯式的拋出throws不然編譯報(bào)錯(cuò)。如果你自定義的異常想像throw new JSONException
這樣處理,則你自定義的異常需要繼承RuntimeException
即可。

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
JSONException RuntimeException(繼承) 是運(yùn)行時(shí)異常 不用捕捉
添加回答
舉報(bào)