private AmazonServiceException unmarshallException(String errorCode, HttpResponse response, JsonNode jsonNode, byte[] rawContent) {
        for (JsonErrorUnmarshaller unmarshaller : unmarshallers) {
            if (unmarshaller.matchErrorCode(errorCode)) {
                try {
                    if (unmarshaller instanceof EnhancedJsonErrorUnmarshaller) {
                        EnhancedJsonErrorUnmarshaller enhancedUnmarshaller = (EnhancedJsonErrorUnmarshaller) unmarshaller;
                        return doEnhancedUnmarshall(enhancedUnmarshaller, errorCode, response, rawContent);
                    } else {
                        return doLegacyUnmarshall(unmarshaller, jsonNode);
                    }
                } catch (Exception e) {
                    LOG.debug("Unable to unmarshall exception content", e);
                    return null;
                }
            }
        }
        return null;
    }
Create an AmazonServiceException using the chain of unmarshallers. This method will never
return null, it will always return a valid AmazonServiceException

@param errorCode
           Error code to find an appropriate unmarshaller
@param response
           The HTTP response
@param jsonNode
           JsonNode of HTTP response
@param rawContent
           The raw bytes of the HTTP response content
@return AmazonServiceException
aws-java-sdk-core/src/main/java/com/amazonaws/http/JsonErrorResponseHandler.java