1

我正在尝试使用org.apache.ddlutils包来读取数据库元数据。我写了以下方法:

public static void readMetaData(DataSource dataSource) throws DdlUtilsException{

    final Platform platform = PlatformFactory.createNewPlatformInstance(dataSource);
}

但是该语句throws 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

请指教。

4

2 回答 2

3

我的猜测是你在DdlUtilsException某个地方有另一个类 - 可能在顶级包中,因为编译器没有提到完整的包名。如果您使用的是 Eclipse 或类似的东西,请尝试导航到类声明。

编辑:好的,从您的评论来看,您没有包括各种依赖项。确保您已经下载了 DdlUtils-1.0-bin.zip,并且依赖项都在 lib 目录中。我不清楚你是否需要所有这些,但你不妨一开始就使用它们,然后删除你不需要的。

于 2011-02-11T15:14:25.607 回答
1

看起来其他类 'org.apache.commons.lang.exception.NestableRuntimeException' 位于 commons-lang 中。下载并添加该 jar,它应该可以工作。检查 DDL Utils 的文档,看看它还依赖什么。

于 2011-02-11T15:31:59.307 回答