2012-09-23 9 views

risposta

17

Invece di cattura RestClientException, prendere la speciale HttpClientErrorException.

Ecco un esempio:

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 fornisce getStatusCode e getResponseBodyAsByteArray per ottenere il codice di stato e il corpo, rispettivamente.

+3

Ho modificato la risposta per aggiungere ulteriori dettagli utili e rendere questa domanda/risposta più utile come canonica. –

+0

Grande modifica. Grazie! –

+0

più generico è 'HttpStatusCodeException' ereditato da' HttpClientErrorException' e 'HttpServerErrorException'. –

Problemi correlati