Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以检索org.postgresql.util.psqleexception';EJB内部IllegalArgumentException的原因是什么?_Java_Hibernate_Exception Handling_Ejb - Fatal编程技术网

Java 是否可以检索org.postgresql.util.psqleexception';EJB内部IllegalArgumentException的原因是什么?

Java 是否可以检索org.postgresql.util.psqleexception';EJB内部IllegalArgumentException的原因是什么?,java,hibernate,exception-handling,ejb,Java,Hibernate,Exception Handling,Ejb,我有一个使用EJB3的项目,当代码抛出与SQL相关的异常时,它会向开发团队发送通知。 例如,使用以下代码: Query q = getEntityManager().createNativeQuery(query); List<Object[]> results = q.getResultList(); Query q=getEntityManager().createNativeQuery(查询); List results=q.getResultList(); 如果我犯了语法

我有一个使用EJB3的项目,当代码抛出与SQL相关的异常时,它会向开发团队发送通知。 例如,使用以下代码:

Query q = getEntityManager().createNativeQuery(query);
List<Object[]> results = q.getResultList();
Query q=getEntityManager().createNativeQuery(查询);
List results=q.getResultList();
如果我犯了语法错误,我将捕获第一个异常
java.lang.IllegalArgumentException:位置为[2]的参数不存在
,它将发送给devs。 在Eclipse中,我可以看到其他异常,如
javax.ejb.EJBException:javax.persistence.PersistenceException:org.hibernate.exception.sqlgrammareexception:cannotextractedresultset
,以及最后一个带有我想要捕获的消息的异常:
,原因是:org.postgresql.util.PSQLException:ERROR:syntax ERROR:at或接近“和”
。有没有办法获取更多详细信息? 我可以看到抑制异常数组是空的

更新:如果我在
catch
中直接插入
org.postgresql.util.psqleexception
,Eclipse会声明:

决不会从try语句体引发此异常


您在Eclipse stracktrace中看到的异常是存储在
IllegalArgumentException
中的异常,形成了一系列错误原因

通过遍历此原因链,可以获得postgres异常:

catch(IllegalArgumentException e) {
    Throwable t = e;
    while (t != null)
    {
        if (t instanceof PSQLException) {
              PSQLException pe = (PSQLException)t;
             // analyse the exception
             break;
        }
        t = t.getCause();
    }
}