private void ProcessException()

in sdk/src/Handlers/AwsSdk/Internal/XRayPipelineHandler.cs [437:466]


        private void ProcessException(AmazonServiceException ex, Entity subsegment)
        {
            int statusCode = (int)ex.StatusCode;
            var responseAttributes = new Dictionary<string, object>();

            if (statusCode >= 400 && statusCode <= 499)
            {
                _recorder.MarkError();
                if (statusCode == 429)
                {
                    _recorder.MarkThrottle();
                }
            }
            else if (statusCode >= 500 && statusCode <= 599)
            {
                _recorder.MarkFault();
            }

            responseAttributes["status"] = statusCode;
            _recorder.AddHttpInformation("response", responseAttributes);

            subsegment.Aws["request_id"] = ex.RequestId;

            // AmazonId2 property in AmazonS3Exception corresponds to the x-amz-id-2 Http header
            var property = ex.GetType().GetProperty("AmazonId2");
            if (property != null)
            {
                subsegment.Aws["id_2"] = (string)property.GetValue(ex, null);
            }
        }