我看別人的面經中有一道題目就問到了Exception,即java的異常處理的,我以前也學了java的異常處理,但是我查了下,看了別人的博客關於寫的exception異常處理,我發現,自己學的不牢固,只學到了一點皮毛而已,在看了那么多博客和資料后,我做下總結吧,不然我大腦都混亂了。
java的中異常祖先是Throwable,Throwable的直接子類是Exception和Error。
Error通過單詞我們就知道,是錯誤的意思,這種錯誤一般是jvm運行產生的錯誤,出現這種錯誤,我們的程序不能解決,比如內存溢出oom,堆溢出等。這種錯誤,我們不必處理,直接讓jvm拋出報錯,我們沒辦法解決就不管了。
Exception中文意思是異常,那么Exception又分為檢查性異常和非檢查性異常。比如RuntimeException類及子類就是非檢查性異處,表示運行時出現的異常,有數組越界,空指針異常,我們也可以不進行處理,讓jvm自己拋出異常,當然如果我們可以預見這種異常的話,最好在程序中進行判斷檢查,程序寫健壯些,有的這種異常就可以避免了。effect java有這種處理的推薦,具體的可以看看這本書。
Exception還有一類是檢查性異常,這是除RuntimeException類及子類外的Exception類和Exception類的其他子類。檢查性異常,必須要進行異常處理的或者拋出,否則編譯器會報錯。
下面這是我自己總結和測試出來,很方便解決出現的各種異常,代碼如下:
父類異常:

子類異常:

