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
    Modifier and Type | Method and Description
    --- | ---
    `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