首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新java.io.IOException :调用需要API级别9

新java.io.IOException :调用需要API级别9
EN

Stack Overflow用户
提问于 2013-01-17 10:55:32
回答 3查看 1.5K关注 0票数 0

首先,这是我的代码:

代码语言:javascript
复制
public static boolean loginValide(final String username, final String password) throws IOException {
    final boolean valide = false;
    final String postData = "somePostParameters";
    URL url;
    HttpsURLConnection connexion;

    url = new URL("someUrl");
    connexion = (HttpsURLConnection) url.openConnection();
    try {
        connexion.setDoOutput(true);

        final DataOutputStream dos = new DataOutputStream(connexion.getOutputStream());
        dos.writeBytes(postData);
        dos.flush();
        dos.close();

        final int responseCode = connexion.getResponseCode();
        if (responseCode == HttpURLConnection.HTTP_ACCEPTED) {
            // ...
        }
        else {
            // ...
        }
    } catch (final IOException e) {
        throw new IOException(e); /* I am retrowing an exception so the
        finally block is still called */
    }
    finally {
        connexion.disconnect(); // Close the connection
    }

    return valide;
}

我的问题是,我只是首先声明了我的方法,抛出了一个IOException。但如果发生这种情况,我想HttpsUrlConnection就不会断开。因此,我想捕获异常,重新抛出它,以便当另一个类调用我的方法时,我可以处理一个网络/连接错误并告诉用户它的情况,所以代码仍然会运行finally块来关闭连接。

首先,我说的对吗?或者还有其他方法可以做到这一点?我不关心方法中的try{} catch{},我只想确保连接和流总是被关闭,不管是否抛出异常。

另一个问题是我抛出异常的catch{}块。Eclipse告诉我:

代码语言:javascript
复制
Call requires API level 9 (current min is 8): new java.io.IOException

说真的,我不能使用低于9的API级别抛出异常吗?我希望这是个玩笑。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-17 11:00:24

即使try-块中的代码抛出异常,最后块中的代码也将始终被调用。至于API级别限制,它是在API 9中添加的特定IOException(Throwable)构造函数。

票数 2
EN

Stack Overflow用户

发布于 2013-01-17 11:01:20

要使用IOEXception和throwable,您需要min API 9..。检查

http://developer.android.com/reference/java/io/IOException.html#IOException(java.lang.Throwable

票数 4
EN

Stack Overflow用户

发布于 2013-01-17 10:59:00

您可以在eclipse中更改MIN api级别。

如果你进入你的清单文件并设置

代码语言:javascript
复制
    <uses-sdk android:minSdkVersion="8" /> <!--in your case -->

然后,将整个项目从运行2.2.X至少改为2.3.X。

当您仍在构建应用程序时,您可以随时更改最低API级别。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14377499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档