Checked exception 是在编译时在语法上必须处理的异常,因此必须在语法上以try..catch加以处理;
Unchecked exception是运行时异常,它继承java.lang.RuntimeException。
当Checked exception在底层的数据库存取时发生,最好的处理方式就是不处理,让异常传播至上层应用程序,由上层应用程序捕捉以显示相关信息,让用户得知问题出在哪里,而不是在底层的数据库存取程序中做些无能为力的处理(例如记录下无法联机的消息)。
Spring 的DataAccessException 就是RuntimeException的子类,即是Unchecked exception,所以不用强迫使用try..catch,而可以自己选择要不要处理,在不处理的情况下,可以将异常传播至上层的应用程序。