org.springframework.web.reactive

## Class HandlerResult

- java.lang.Object
- - org.springframework.web.reactive.HandlerResult

-     public class HandlerResult
      extends Object

  Represent the result of the invocation of a handler or a handler method.
  Since:
    5.0
  Author:
    Rossen Stoyanchev

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `HandlerResult(Object handler, Object returnValue, MethodParameter returnType)` Create a new `HandlerResult`.
    `HandlerResult(Object handler, Object returnValue, MethodParameter returnType, BindingContext context)` Create a new `HandlerResult`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `reactor.core.publisher.Mono<HandlerResult>` | `applyExceptionHandler(Throwable failure)` Apply the exception handler and return the alternative result.
    `BindingContext` | `getBindingContext()` Return the BindingContext used for request handling.
    `Object` | `getHandler()` Return the handler that handled the request.
    `Model` | `getModel()` Return the model used for request handling.
    `ResolvableType` | `getReturnType()` Return the type of the value returned from the handler -- e.g.
    `MethodParameter` | `getReturnTypeSource()` Return the `MethodParameter` from which `returnType` was created.
    `Object` | `getReturnValue()` Return the value returned from the handler, if any.
    `boolean` | `hasExceptionHandler()` Whether there is an exception handler.
    `HandlerResult` | `setExceptionHandler(Function<Throwable,reactor.core.publisher.Mono<HandlerResult>> function)` Configure an exception handler that may be used to produce an alternative result when result handling fails.

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

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

- - ### Constructor Detail

    - #### HandlerResult

          public HandlerResult(Object handler,
                               @Nullable
                               Object returnValue,
                               MethodParameter returnType)

      Create a new `HandlerResult`.
      Parameters:
        `handler` - the handler that handled the request
        `returnValue` - the return value from the handler possibly `null`
        `returnType` - the return value type

    - #### HandlerResult

          public HandlerResult(Object handler,
                               @Nullable
                               Object returnValue,
                               MethodParameter returnType,
                               @Nullable
                               BindingContext context)

      Create a new `HandlerResult`.
      Parameters:
        `handler` - the handler that handled the request
        `returnValue` - the return value from the handler possibly `null`
        `returnType` - the return value type
        `context` - the binding context used for request handling

  - ### Method Detail

    - #### getHandler

          public Object getHandler()

      Return the handler that handled the request.

    - #### getReturnValue

          @Nullable
          public Object getReturnValue()

      Return the value returned from the handler, if any.

    - #### getReturnType

          public ResolvableType getReturnType()

      Return the type of the value returned from the handler -- e.g. the return type declared on a controller method's signature. Also see `getReturnTypeSource()` to obtain the underlying `MethodParameter` for the return type.

    - #### getReturnTypeSource

          public MethodParameter getReturnTypeSource()

      Return the `MethodParameter` from which `returnType` was created.

    - #### getBindingContext

          public BindingContext getBindingContext()

      Return the BindingContext used for request handling.

    - #### getModel

          public Model getModel()

      Return the model used for request handling. This is a shortcut for `getBindingContext().getModel()`.

    - #### setExceptionHandler

          public HandlerResult setExceptionHandler(Function<Throwable,reactor.core.publisher.Mono<HandlerResult>> function)

      Configure an exception handler that may be used to produce an alternative result when result handling fails. Especially for an async return value errors may occur after the invocation of the handler.
      Parameters:
        `function` - the error handler
      Returns:
        the current instance

    - #### hasExceptionHandler

          public boolean hasExceptionHandler()

      Whether there is an exception handler.

    - #### applyExceptionHandler

          public reactor.core.publisher.Mono<HandlerResult> applyExceptionHandler(Throwable failure)

      Apply the exception handler and return the alternative result.
      Parameters:
        `failure` - the exception
      Returns:
        the new result or the same error if there is no exception handler