/// <summary> /// Handle exception and build response for it. /// </summary> /// <param name="context">HTTP context.</param> /// <param name="requestBody">Request body content.</param> /// <param name="ex">Exception information.</param> private static Task HandleExceptionAsync(HttpContext context, string requestBody, Exception ex, AppSettings appSettings) { ErrorBuilder errorBuilder = new ErrorBuilder(context, requestBody, ex, appSettings); if (ex is ControllerException controllerEx) { return(BuildAndSendAsync(controllerEx, errorBuilder)); } if (ex is RequestValidationException validationEx) { return(BuildAndSendAsync(validationEx, errorBuilder)); } if (ex is AppBusinessException businessEx) { return(BuildAndSendAsync(businessEx, errorBuilder)); } return(errorBuilder.BuildAndSendAsync()); }