Throwable包含了錯誤(Error)和異常(Excetion兩類)
Exception又包含了運行時異常(RuntimeException, 又叫非檢查異常)和非運行時異常(又叫檢查異常)
(1) Error是程序無法處理的, 如果OutOfMemoryError、OutOfMemoryError等等, 這些異常發生時, java虛擬機一般會終止線程 .
(2) 運行時異常都是RuntimeException類及其子類,如 NullPointerException、IndexOutOfBoundsException等, 這些異常是不檢查的異常, 是在程序運行的時候可能會發生的, 所以程序可以捕捉, 也可以不捕捉. 這些錯誤一般是由程序的邏輯錯誤引起的, 程序應該從邏輯角度去盡量避免.
(3) 檢查異常是運行時異常以外的異常, 也是Exception及其子類, 這些異常從程序的角度來說是必須經過捕捉檢查處理的, 否則不能通過編譯. 如IOException、SQLException等
