【发布时间】:2017-02-27 09:40:03
【问题描述】:
当涉及到getInputStream 和getErrorStream 时,我如何使用try with resource 来覆盖所有角落
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
BufferedReader bufferedReader;
if(connection.getResponseCode() == 200) {
bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
} else {
bufferedReader = new BufferedReader(new InputStreamReader(connection.getErrorStream()));
}
String line;
StringBuilder result = new StringBuilder();
while((line = bufferedReader.readLine()) != null) {result.append(line);}
bufferedReader.close();
if(connection.getResponseCode() != 200) {
throw new Gson().fromJson(result.toString(), FooException.class);
} else {
return new Gson().fromJson(result.toString(), Foo.class);
}
【问题讨论】:
-
“覆盖所有角落”是什么意思?
-
我想在关闭连接和缓冲阅读器之前以一种涵盖结果和错误处理的方式对资源进行尝试
-
你将如何使用 try with resource 来处理上述代码?