private void handleThrowable()

in src/main/java/org/apache/cassandra/sidecar/routes/JsonErrorHandler.java [121:146]


    private void handleThrowable(RoutingContext ctx, Throwable exception)
    {
        int effectiveStatusCode = ctx.statusCode() != 200 ? ctx.statusCode() : INTERNAL_SERVER_ERROR.code();
        HttpResponseStatus responseStatus = HttpResponseStatus.valueOf(effectiveStatusCode);
        JsonObject payload = new JsonObject().put("status", responseStatus.reasonPhrase());
        if (displayExceptionDetails)
        {
            payload.put("code", effectiveStatusCode);

            if (exception != null)
            {
                JsonArray stack = new JsonArray();
                for (StackTraceElement elem : exception.getStackTrace())
                {
                    stack.add(elem.toString());
                }
                payload.put("message", exception.getMessage())
                       .put("stack", stack);
            }
            else
            {
                payload.put("message", responseStatus.reasonPhrase());
            }
        }
        writeResponse(ctx, responseStatus.code(), payload);
    }