为什么Exception.getMessage()在postgres jdbc 8.3和jdbc 8.4版本之间有所不同?

时间:2014-05-19 21:52:23

标签: java postgresql exception jdbc

我通过Java Excetpion从postgres中捕获了Exception,但它在postgres jdbc 8.3和8.4驱动程序中带来了不同类型的消息......

当我使用带有8.3 jdbc驱动程序的Exception.getMessage()时,它会带来

  

错误:"我的pgsql引发异常"

当我使用带有8.4 jdbc驱动程序的Exception.getMessage()时,它会带来

  

错误:"我的pgsql引发异常"

     

其中:SQL语句"发生错误的语句"

我怎样才能避免"其中:"子句没有拆分字符串??

这是我的代码:

   try {
      ...
   } catch (Exception e) {
       System.out.println(e.getMessage());
   }

1 个答案:

答案 0 :(得分:1)

如果您想要错误的特定子字段use the API provided

try {
   ...
} catch (org.postgresql.util.PSQLException e) {
    System.out.println(e.getServerErrorMessage().getMessage());
} catch (Exception e) {
    System.out.println(e.getMessage());
}

如果你想做一些比简单捕获更复杂的事情,Apache ExceptionUtils可以很方便。