对于DAO,我使用spring jdbcTemplate,我需要抛出自己的自定义异常而不是标准的spring DataAccessException。我无法扩展DataAccessException,因为我有自己的异常层次结构。
所以我写了这样的代码:
public class CustomSQLErrorTranslator extends SQLErrorCodeSQLExceptionTranslator {
protected DataAccessException customTranslate(String task, String sql, SQLException sqlex) {
throw new RepositoryException(task + "; query ->" + sql, sqlex);
}
}
此方法应返回DataAccessException为null的任何子级。但相反,我抛出自定义异常。
它有效,但它显然是一个黑客......
安全吗?或者也许我错过了另一种方法来做到这一点?