我正在尝试使用 org.apache.ddlutils 包来读取数据库元数据。 我写了以下方法:
public static void readMetaData(DataSource dataSource) throws DdlUtilsException{
final Platform platform = PlatformFactory.createNewPlatformInstance(dataSource);
}
但语句 抛出DdlUtilsException 会出现以下错误:
不能抛出DdlUtilsException类型的异常;异常类型必须是Throwable的子类
我根本无法理解此错误背后的原因,因为http://db.apache.org/ddlutils/api/org/apache/ddlutils/DdlUtilsException.html处的API明确说明了以下内容:
java.lang.Object
extended by java.lang.Throwable
extended by java.lang.Exception
extended by java.lang.RuntimeException
extended by org.apache.commons.lang.exception.NestableRuntimeException
extended by org.apache.ddlutils.DdlUtilsException
请建议。
答案 0 :(得分:3)
我的猜测是你在某个地方有另一个名为DdlUtilsException
的类 - 可能在顶级包中,因为编译器没有提到完整的包名。如果您正在使用Eclipse或类似的东西,请尝试导航到类声明。
编辑:好的,根据您的评论判断,您不包括各种依赖项。确保已下载DdlUtils-1.0-bin.zip,并且依赖项都在lib目录中。我不能立即清楚你是否需要所有,但你可以先使用它们,然后删除你不需要的东西。
答案 1 :(得分:1)
看起来其他类'org.apache.commons.lang.exception.NestableRuntimeException'位于commons-lang中。下载并添加该jar,它应该工作。检查DDL Utils的文档,看看它还有什么依赖。