public void onClick() throws SQLException
try {
// Do something
} catch(MySQLIntegrityConstraintViolationException e) {
//Can i convert this exception to SQL Exception
}是否可以将MySQLIntegrityConstraintViolationException转换为该方法抛出的SQLException?
发布于 2012-09-29 20:16:54
当然,你可以包装和重新抛出-如果你认为它增加了更多的信息或使你的想法更通用。我认为在这种情况下,您捕获的异常提供了比您正在考虑的异常更多的信息。
不过,我不会选择SQLException。这是一个检查过的异常。我认为潮流已经从检查的异常转变为未检查的异常。
Spring将SQLExceptions包装到扩展RuntimeException的未检查的DataAccessException中。我建议你照着做。
下面是你应该怎么做:
catch(MySQLIntegrityConstraintViolationException e) {
throw new SQLException(e);
}不要只是传递信息。提供整个堆栈跟踪。
发布于 2012-09-29 20:18:18
但是MySQLIntegrityConstraintViolationException已经是a SQLExecption (通过继承)!所以不需要重新抛出它(只需删除try/catch-block)。
发布于 2012-09-29 20:19:26
try {
} catch (MySQLIntegrityConstraintViolationException e) {
throw new SQLException(e);
}https://stackoverflow.com/questions/12652616
复制相似问题