org.springframework.web.client

## Class DefaultResponseErrorHandler

- java.lang.Object
- - org.springframework.web.client.DefaultResponseErrorHandler

All Implemented Interfaces:
  ResponseErrorHandler

    public class DefaultResponseErrorHandler
    extends Object
    implements ResponseErrorHandler

Default implementation of the `ResponseErrorHandler` interface.

This error handler checks for the status code on the `ClientHttpResponse`: any code with series `HttpStatus.Series.CLIENT_ERROR` or `HttpStatus.Series.SERVER_ERROR` is considered to be an error. This behavior can be changed by overriding the `hasError(HttpStatus)` method.

Since:
  3.0
Author:
  Arjen Poutsma, Rossen Stoyanchev
See Also:
  `RestTemplate.setErrorHandler(org.springframework.web.client.ResponseErrorHandler)`

### Constructor Summary

Constructors
Constructor and Description
`DefaultResponseErrorHandler()`

### Method Summary

Methods
`void` `handleError(ClientHttpResponse response)` This default implementation throws a `HttpClientErrorException` if the response status code is `HttpStatus.Series.CLIENT_ERROR`, a `HttpServerErrorException` if it is `HttpStatus.Series.SERVER_ERROR`, and a `RestClientException` in other cases.
`boolean` `hasError(ClientHttpResponse response)` Delegates to `hasError(HttpStatus)` with the response status code.
`protected boolean` `hasError(HttpStatus statusCode)` Template method called from `hasError(ClientHttpResponse)`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### DefaultResponseErrorHandler

    public DefaultResponseErrorHandler()

### Method Detail

#### hasError

    public boolean hasError(ClientHttpResponse response)
                     throws IOException

Delegates to `hasError(HttpStatus)` with the response status code.

Specified by:
  `hasError` in interface `ResponseErrorHandler`
Parameters:
  `response` - the response to inspect
Returns:
  `true` if the response has an error; `false` otherwise
Throws:
  `IOException` - in case of I/O errors

#### hasError

    protected boolean hasError(HttpStatus statusCode)

Template method called from `hasError(ClientHttpResponse)`.

The default implementation checks if the given status code is `CLIENT_ERROR` or `SERVER_ERROR`. Can be overridden in subclasses.

Parameters:
  `statusCode` - the HTTP status code
Returns:
  `true` if the response has an error; `false` otherwise

#### handleError

    public void handleError(ClientHttpResponse response)
                     throws IOException

This default implementation throws a `HttpClientErrorException` if the response status code is `HttpStatus.Series.CLIENT_ERROR`, a `HttpServerErrorException` if it is `HttpStatus.Series.SERVER_ERROR`, and a `RestClientException` in other cases.

Specified by:
  `handleError` in interface `ResponseErrorHandler`
Parameters:
  `response` - the response with the error
Throws:
  `IOException` - in case of I/O errors