| 
<?phpnamespace Aws\S3\Exception;
 
 /**
 * Exception thrown when errors occur while deleting objects using a
 * {@see S3\BatchDelete} object.
 */
 class DeleteMultipleObjectsException extends \Exception
 {
 private $deleted = [];
 private $errors = [];
 
 /**
 * @param array       $deleted Array of successfully deleted keys
 * @param array       $errors  Array of errors that were encountered
 */
 public function __construct(array $deleted, array $errors)
 {
 $this->deleted = array_values($deleted);
 $this->errors = array_values($errors);
 parent::__construct('Unable to delete certain keys when executing a'
 . ' DeleteMultipleObjects request: '
 . self::createMessageFromErrors($errors));
 }
 
 /**
 * Create a single error message from multiple errors.
 *
 * @param array $errors Errors encountered
 *
 * @return string
 */
 public static function createMessageFromErrors(array $errors)
 {
 return "\n- " . implode("\n- ", array_map(function ($key) {
 return json_encode($key);
 }, $errors));
 }
 
 /**
 * Get the errored objects
 *
 * @return array Returns an array of associative arrays, each containing
 *               a 'Code', 'Message', and 'Key' key.
 */
 public function getErrors()
 {
 return $this->errors;
 }
 
 /**
 * Get the successfully deleted objects
 *
 * @return array Returns an array of associative arrays, each containing
 *               a 'Key' and optionally 'DeleteMarker' and
 *              'DeleterMarkerVersionId'
 */
 public function getDeleted()
 {
 return $this->deleted;
 }
 }
 
 |