1.6环境下奇怪的IOException 1.6之前的错误

时间:2011-08-04 14:37:55

标签: java android exception-handling

我正在尝试将e类型IOException作为原因传递给新IOException,如下所示。

try {
    //stuff
}
catch (IOException e) {
    throw new IOException("Some Message", e);
}

这给了我以下错误:

  

构造函数IOException(String,IOException)未定义

但是,在1.6中,IOException(String, Throwable)被实现为此类的构造函数。

就像我在Java 1.5中,即使我的项目属性中的所有内容都说1.6!我的硬盘上甚至没有安装1.5 JDK!

3 个答案:

答案 0 :(得分:2)

Android上的Java版本仅实现1.5功能。您应该可以使用initCause方法,如下所示:

IOException e2 = new IOException("Some message");
e2.initCause(e);
throw e2;

答案 1 :(得分:0)

尝试在捕获中执行此操作:

throw new IOException("Some Message", e.getCause());

答案 2 :(得分:0)

我在项目设置中引用了错误的android.jar。

  

另请注意,此构造函数是在API级别9的Android API中引入的。如果您使用的是以下任何内容,那么您将无法使用它。 - Joachim Sauer 8月4日14:44