private ResponseEntity<Object> handleResultMessagesNotificationException(
     final ResultMessagesNotificationException ex,
     final HttpHeaders headers,
     final HttpStatus status,
     final WebRequest request) {
   final String errorCode = exceptionCodeResolver.resolveExceptionCode(ex);
   final ApiError apiError =
       apiErrorCreator.createResultMessagesApiError(
           request, errorCode, ex.getResultMessages(), ex.getMessage());
   return handleExceptionInternal(ex, apiError, headers, status, request);
 }
 @Override
 protected ResponseEntity<Object> handleExceptionInternal(
     Exception ex, Object body, HttpHeaders headers, HttpStatus status, WebRequest request) {
   final Object apiError;
   if (body == null) {
     String errorCode = exceptionCodeResolver.resolveExceptionCode(ex);
     apiError = apiErrorCreator.createApiError(request, errorCode, ex.getLocalizedMessage());
   } else {
     apiError = body;
   }
   return new ResponseEntity<>(apiError, headers, status);
 }
 private ResponseEntity<Object> handleBindingResult(
     Exception ex,
     BindingResult bindingResult,
     HttpHeaders headers,
     HttpStatus status,
     WebRequest request) {
   String errorCode = exceptionCodeResolver.resolveExceptionCode(ex);
   ApiError apiError =
       apiErrorCreator.createBindingResultApiError(
           request, errorCode, bindingResult, ex.getMessage());
   return handleExceptionInternal(ex, apiError, headers, status, request);
 }
 @RequestMapping
 public ResponseEntity<ApiError> handleErrorPage(
     @RequestParam("errorCode") String errorCode, WebRequest request) {
   HttpStatus httpStatus =
       HttpStatus.valueOf(
           (Integer)
               request.getAttribute(
                   RequestDispatcher.ERROR_STATUS_CODE, RequestAttributes.SCOPE_REQUEST));
   ApiError apiError =
       apiErrorCreator.createApiError(request, errorCode, httpStatus.getReasonPhrase());
   return new ResponseEntity<>(apiError, httpStatus);
 }