2

私は現在、HttpURLConnectionをすばやく構築するための簡単なメソッドを作成していますが、発生する例外を理解するのに問題があります。現在、次のようになっています。

public static HttpURLConnection buildConnection(String urlString) throws IOException{
    try{
        URL url = new URL(urlString);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.setReadTimeout(10000 /* 10 seconds */);
        connection.setConnectTimeout(10000 /* 10 seconds */);
        return connection;

    } catch (MalformedURLException e){
        // Impossible - All network URLs are taken from String resources
        Log.w(LOG_LABEL, "URL \"" + urlString + "\" was malformed");
        e.printStackTrace();
        return null;
    } catch (ProtocolException e){
        // Impossible - "GET" is a valid Request method
        e.printStackTrace();
        return null;
    }
}

MalformedURLExceptionとProtocolExceptionの例外をキャッチしてログに記録します。これは、発生する可能性がないことを知っているためです。ただし、url.openConnection()によってスローされる可能性のあるIOExceptionをスローします。この例外は何ですか?何が原因で、アプリが発生したときにどのように動作する必要がありますか?

どうもありがとう、ウィリアム

4

4 に答える 4

4

MalformedURLException: URL の形式が正しくない場合 (例: URL = "?@fake") ProtocolException: 基になるプロトコルにエラーがあることを示します (SSL 証明書が有効でないなどの可能性があります)。

IOException MalformedURLException を取得できませんでした。これは、指定した文字列 URL の構造が正しいことを示しているだけです。それぞれのホストが存在し、到達可能であることを保証するものではありません。また、ホストへの接続中、またはそのホストへの読み取りまたは書き込みの実行中に問題が発生しないことも保証しません。そのため、問題が発生した場合 (ホストに到達できない場合) に必要なホストへの接続を開いているとき、または接続のハンドシェイク中に読み取り/書き込みエラーが発生した場合、IOException が発生する場合があります。

于 2013-03-21T19:19:01.497 に答える
1

ネットワーク接続の問題-基盤となるソケットに書き込みまたは受信できない。

于 2013-03-21T19:00:50.453 に答える
0

最初に Javadoc を参照してください。http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html

スローされた例外の原因メッセージパラメータを調べることで、利用可能な場合は原因を取得できるはずです。

于 2013-03-21T19:05:32.047 に答える
-1

ある種のI/O例外が発生したことを通知します。このクラスは、I/O操作の失敗または中断によって生成される例外の一般的なクラスです。お役に立てれば

于 2013-03-21T19:02:59.680 に答える