Checked exception 是在編譯時在語法上必須處理的異常,因此必須在語法上以try..catch加以處理;
Unchecked exception是運行時異常,它繼承java.lang.RuntimeException。
當Checked exception在底層的數據庫存取時發生,最好的處理方式就是不處理,讓異常傳播至上層應用程序,由上層應用程序捕捉以顯示相關信息,讓用戶得知問題出在哪裏,而不是在底層的數據庫存取程序中做些無能爲力的處理(例如記錄下無法聯機的消息)。
Spring 的DataAccessException 就是RuntimeException的子類,即是Unchecked exception,所以不用強迫使用try..catch,而可以自己選擇要不要處理,在不處理的情況下,可以將異常傳播至上層的應用程序。