Java中的嵌套异常

时间:2015-02-06 10:04:26

标签: java exception jdbc javabeans

我在Java中处理SEVERE异常,如下所示:

SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'birtReportRenderer': Injection of autowired dependencies failed; 

nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.convergys.raspberry.server.filemgmt.FileWorker.setFileAuditTbl(com.convergys.raspberry.server.database.FileAuditTbl); 

nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'fileAuditTbl': Invocation of init method failed; 

nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; 

nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.postgresql.Driver'

所有这些嵌套异常都是这样的:

exception; exception; exception; etc.

这里的事件顺序是什么?我应该查看最后一个嵌套异常并处理JDBC,我应该从第一个异常开始,还是应该在其他地方查找?

如果您需要更多信息,请告诉我。

感谢。

5 个答案:

答案 0 :(得分:2)

你应该从根本原因(自下而上的方法到堆栈跟踪)开始,所以第一个要看,

  

嵌套异常是org.apache.commons.dbcp.SQLNestedException:不能   加载JDBC驱动程序类' org.postgresql.Driver'

它引起了,

  

嵌套异常是   org.springframework.jdbc.CannotGetJdbcConnectionException:不能   获取JDBC连接;

然后又导致了其他问题以及bean创建失败。因此,您需要先检查postgresql驱动程序。

另见What is a stack trace, and how can I use it to debug my application errors?

答案 1 :(得分:1)

日志中的最后一个是根本原因。你有postgres驱动程序的问题。

答案 2 :(得分:1)

从最后一个嵌套异常开始是一个好主意。这是首先抛出的例外。比阅读顶部的例外。

所以这会导致异常:

Cannot load JDBC driver class 'org.postgresql.Driver'

答案 3 :(得分:1)

你应该自下而上地读取堆栈跟踪,问题是你的JDBC驱动程序无法加载,很可能它不在类路径中。

答案 4 :(得分:1)

Java在堆栈中保持异常,这是堆栈底部出现异常的主要原因,因此从下到上读取异常。

enter image description here