2012-09-23 59 views

Trả lời

17

Thay vì bắt RestClientException, hãy bắt đặc biệt HttpClientErrorException.

Dưới đây là một ví dụ:

try { 
    Link dataCenterLink = serviceInstance.getLink("dataCenter"); 
    String dataCenterUrl = dataCenterLink.getHref(); 
    DataCenterResource dataCenter = 
     restTemplate.getForObject(dataCenterUrl, DataCenterResource.class); 
    serviceInstance.setDataCenter(dataCenter); 
} catch (HttpClientErrorException e) { 
    HttpStatus status = e.getStatusCode(); 
    if (status != HttpStatus.NOT_FOUND) { throw e; } 
} 

HttpClientErrorException cung cấp getStatusCodegetResponseBodyAsByteArray để có được mã trạng thái và cơ thể, tương ứng.

+3

Tôi đã chỉnh sửa câu trả lời của bạn để thêm một số chi tiết hữu ích khác và làm cho câu hỏi/câu trả lời này hữu ích hơn như kinh điển. –

+0

Chỉnh sửa tuyệt vời. Cảm ơn! –

+0

loại chung chung hơn là 'HttpStatusCodeException' được thừa hưởng bởi' HttpClientErrorException' và 'HttpServerErrorException'. –

Các vấn đề liên quan