目录
一般用法
try()的括号中代码含义?
一般用法
try{
...
}catch(Exception e){
...
}finally{
关闭资源
}
try()的括号中代码含义?
try的括号中所有 实现Closeable 的类声明都可以写在里面,最常见的是流操作,socket操作等。括号中可以写多行语句,会自动关闭括号中的资源。
PS: try()是1.7的新特性,括号里的内容支持包括流以及任何可关闭的资源,数据流会在 try 执行完毕后自动被关闭,而不用我们手动关闭了。
先看例子
public static HttpResponsebaseDTO postReturn(String url, String json, String token) {
HttpResponsebaseDTO baseDTO = new HttpResponsebaseDTO();
Request request = new Request.Builder().url(url)
.header("Content-Type", org.springframework.http.MediaType.APPLICATION_JSON_VALUE )
.header("Authorization", token)
.post(RequestBody.create(JSON, json)).build();
baseDTO.setHttpCode(HttpStatus.SC_INTERNAL_SERVER_ERROR);
try (Response response = getInstance().newCall(request).execute()) {
baseDTO.setEntryStr(response.body().string());
baseDTO.setHttpCode(code);
} catch (IOException e) {
log.error(e.getMessage(), e);
}
return baseDTO;
}
等价于如下图框框
再来看try中 Response 这个类的实现,也实现了 Closeable接口



