Java里面的異常分為運行時異常(RuntimeException)和檢查異常(checked exception)對于很多異常,在程序中throw new Exception()這樣的語句就申明了一個異常如果是運行時異常,可以在程序中處理,也可以不處理,對于檢查異常,必須要處理它有一個問題,就是那些沒有申明的異常時怎么把它拋出來的呢,就比如obj.method();當 obj==null 的時候,一定會拋出NPE,但是在method()里面并沒有這樣的語句method(){
if(this==null)
throw new NullPointException();
}那類似這樣的 Exception 是怎么實現的呢是在JVM做的?那如果是在JVM中做的,那JVM對哪些檢查異常做了這樣的事呢,JVM又是怎么做的呢?@劍心無痕說得對,我這里面問題確實很明顯,obj是空,跟本沒有辦法找到method這個方法。不過我還想要了解“null.method()”的時候,這個NullPointException是怎么給拋出來的,Java代碼也沒有看到哪里拋出了NullPointException?
2 回答

守著一只汪
TA貢獻1872條經驗 獲得超4個贊
你好,簡單的說JVM是不處理異常的,一般是直接掛掉,所以有了異常處理機制,將異常分為Error和Exception,細分的話還有非檢查異常與檢查異常、運行時異常與非運行時異常,我們白話的講解下,異常跑出是對應的線程與類型還有說明,Java應用程序異常處理機制:拋出異常、捕捉異常。
有一個點:一個方法所能捕捉的異常,一定是Java代碼在某處所拋出的異常。簡單地說,異??偸窍缺粧伋觯蟊徊蹲降?。(具體還有很多學問)
添加回答
舉報
0/150
提交
取消