Throwable這個Java類被用來表示任何可以作為異常被拋出的類,Throwable對象可分為兩種類型(指從Throwable繼承而得到的類型):
Error:用來表示編譯時和系統錯誤(一般不用關心)
Exception:是可以被拋出的基本類型,在Java類庫、用戶方法以及運行時故障都可能拋出Exception型異常。所以這個是需要我們關心的。
如果遇到Exception異常,我們必須對它進行捕獲或拋出。
其中有個特例:RuntimeException
如果我們對傳入的引用都進行如下檢查是非常麻煩的一件事情。
if(t == null) throw new NullPointerException();
所以有一部分異常(運行時異常)不需要我們特意去檢測,它們會自動被檢測並拋出。如果我們不對其進行捕獲,則RuntimeException異常會穿越所有的執行路徑直達main()方法,並在程序退出前調用異常的printStackTrace()方法。
遇到普通異常時必須捕獲或者在所在方法上使用throws聲明拋出的異常,而遇到運行時異常則可以不對其進行捕獲,也不需要在方法上聲明拋出的異常。