gpt4 book ai didi

spring - Spring + iBatis 中由于 SQLException 导致 UndeclaredThrowableException?

转载 作者:行者123 更新时间:2023-12-01 16:04:37 25 4
gpt4 key购买 nike

当我输入错误的 SQL 驱动程序名称或数据库服务器脱机时,我会收到以下异常,基本上是任何 SQLException。

我无法确定 UndeclaredThrowableException 来自何处。 SqlMapClientTemplate中的第194行是这样的:

logger.debug("Obtained JDBC Connection [" + springCon + "] for iBATIS operation");

这是跟踪:

    java.lang.reflect.UndeclaredThrowableException        $Proxy59.toString(Unknown Source)    java.lang.String.valueOf(Unknown Source)    java.lang.StringBuffer.append(Unknown Source)    org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:194)    org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:249)    org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:296)    org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:290)

我的一些阅读内容指向某种类型的类加载问题?我不知道 $Proxy 是在哪里引入的?

最佳答案

$Proxy59 类必须是 springCon 变量的类型。它是一个JDK代理类型,可能是Spring框架引入的,作为真实连接的包装器。我知道有一个池化连接提供程序,它返回通过代理抑制 close() 方法的连接(因为连接是池化的,调用 close 不是客户端的任务)。

也许toString()方法的代理处理程序会抛出一个已检查的异常,这对于代理机制来说是可能的,但不允许。

Java Documentation说:

  • “如果调用引发了一个不可分配给接口(interface)方法的 throws 子句中声明的任何异常类型的受检异常,则代理实例上的方法调用将引发 UndeclaredThrowableException。UndeclaredThrowableException 将使用调用方法引发的异常进行构造。”

您是否记录了任何其他异常(可能是在该异常之前),或者提到了异常原因?

关于spring - Spring + iBatis 中由于 SQLException 导致 UndeclaredThrowableException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2886741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com