private void populateSubsegmentException()

in aws-xray-recorder-sdk-aws-sdk-v2/src/main/java/com/amazonaws/xray/interceptors/TracingInterceptor.java [399:430]


    private void populateSubsegmentException(Subsegment subsegment, Context.FailedExecution context) {
        Throwable exception = context.exception();
        subsegment.addException(exception);

        int statusCode = -1;
        if (exception instanceof SdkServiceException) {
            statusCode = ((SdkServiceException) exception).statusCode();
            subsegment.getCause().setMessage(exception.getMessage());
            if (((SdkServiceException) exception).isThrottlingException()) {
                subsegment.setThrottle(true);
                // throttling errors are considered client-side errors
                subsegment.setError(true);
            }
            setRemoteForException(subsegment, exception);
        } else if (context.httpResponse().isPresent()) {
            statusCode = context.httpResponse().get().statusCode();
        }

        if (statusCode == -1) {
            return;
        }

        if (statusCode >= 400 && statusCode < 500) {
            subsegment.setFault(false);
            subsegment.setError(true);
            if (statusCode == 429) {
                subsegment.setThrottle(true);
            }
        } else if (statusCode >= 500) {
            subsegment.setFault(true);
        }
    }