我正在使用postgresql jdbc驱动程序,并且继承自PSQLException
的类SQLException
。我应该更好地抓住SQLException
或PSQLException
?
答案 0 :(得分:0)
如果你真的想要捕获异常,那么你的方法将处理异常并且不需要在其SQLException
子句中声明throws
,那么你需要捕获{{ 1}}。这是因为JDBC API声明要抛出SQL异常。
我们大多数SQLException
都将包含在更一般的PSQLExceptions
中,因此要访问它们,您可能会使用以下内容:
SQLException
然后在您的代码中,您将获得public static <T> T unwrapCause(Class<T> clazz, Throwable e) {
while (!clazz.isInstance(e) && e.getCause() != null && e != e.getCause()) {
e = e.getCause();
}
return clazz.isInstance(e) ? clazz.cast(e) : null;
}
,如下所示:
PSQLException