時々私がストリームを開くとき:
stream = url.openStream();
BufferedReader buffReader = new BufferedReader(new InputStreamReader(stream));
次の例外が発生します。
java.io.IOException:
Server returned HTTP response code: 500 for URL: https://...
例外を次のように処理していますが、アプリケーションは終了します。
catch (IOException ioe) {
ioe.printStackTrace();
}
IOEcxeptionなのにキャッチブロックが入らなかった理由を誰かに説明してもらえますか?
どうも
編集(追加コード;-)
private String request(URL url) {
InputStream stream = null;
String line, response = new String();
try {
stream = url.openStream();
BufferedReader buffReader =
new BufferedReader(new InputStreamReader(stream));
while ((line = buffReader.readLine()) != null)
response += line;
} catch (MalformedURLException mue) {
mue.printStackTrace();
} catch (HTTPException httpexc) {
httpexc.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
try {
stream.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
return response;
}
私は自分のアプリケーションでこのコードを頻繁に実行しますが、上記の例外が発生することもあります。
スタックトレースの一部は次のとおりです。
java.io.IOException: Server returned HTTP response code: 500 for URL: ...
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)