PHP Classes

File: application/modules/extensions/aws/Aws/Exception/AwsException.php

Recommend this page to a friend!
  Classes of Tran Tuan   Pretty PHP S3 Files Manager   application/modules/extensions/aws/Aws/Exception/AwsException.php   Download  
File: application/modules/extensions/aws/Aws/Exception/AwsException.php
Role: Application script
Content type: text/plain
Description: Application script
Class: Pretty PHP S3 Files Manager
Web based interface to manage files in Amazon S3
Author: By
Last change:
Date: 8 years ago
Size: 4,265 bytes
 

Contents

Class file image Download
<?php
namespace Aws\Exception;

use
Psr\Http\Message\ResponseInterface;
use
Psr\Http\Message\RequestInterface;
use
Aws\CommandInterface;
use
Aws\ResultInterface;

/**
 * Represents an AWS exception that is thrown when a command fails.
 */
class AwsException extends \RuntimeException
{
   
/** @var ResponseInterface */
   
private $response;
    private
$request;
    private
$result;
    private
$command;
    private
$requestId;
    private
$errorType;
    private
$errorCode;
    private
$connectionError;

   
/**
     * @param string $message Exception message
     * @param CommandInterface $command
     * @param array $context Exception context
     * @param \Exception $previous Previous exception (if any)
     */
   
public function __construct(
       
$message,
       
CommandInterface $command,
        array
$context = [],
        \
Exception $previous = null
   
) {
       
$this->command = $command;
       
$this->response = isset($context['response']) ? $context['response'] : null;
       
$this->request = isset($context['request']) ? $context['request'] : null;
       
$this->requestId = isset($context['request_id'])
            ?
$context['request_id']
            :
null;
       
$this->errorType = isset($context['type']) ? $context['type'] : null;
       
$this->errorCode = isset($context['code']) ? $context['code'] : null;
       
$this->connectionError = !empty($context['connection_error']);
       
$this->result = isset($context['result']) ? $context['result'] : null;
       
parent::__construct($message, 0, $previous);
    }

    public function
__toString()
    {
        if (!
$this->getPrevious()) {
            return
parent::__toString();
        }

       
// PHP strangely shows the innermost exception first before the outer
        // exception message. It also has a default character limit for
        // exception message strings such that the "next" exception (this one)
        // might not even get shown, causing developers to attempt to catch
        // the inner exception instead of the actual exception because they
        // can't see the outer exception's __toString output.
       
return sprintf(
           
"exception '%s' with message '%s'\n\n%s",
           
get_class($this),
           
$this->getMessage(),
           
parent::__toString()
        );
    }

   
/**
     * Get the command that was executed.
     *
     * @return CommandInterface
     */
   
public function getCommand()
    {
        return
$this->command;
    }

   
/**
     * Get the sent HTTP request if any.
     *
     * @return RequestInterface|null
     */
   
public function getRequest()
    {
        return
$this->request;
    }

   
/**
     * Get the received HTTP response if any.
     *
     * @return ResponseInterface|null
     */
   
public function getResponse()
    {
        return
$this->response;
    }

   
/**
     * Get the result of the exception if available
     *
     * @return ResultInterface|null
     */
   
public function getResult()
    {
        return
$this->result;
    }

   
/**
     * Returns true if this is a connection error.
     *
     * @return bool
     */
   
public function isConnectionError()
    {
        return
$this->connectionError;
    }

   
/**
     * If available, gets the HTTP status code of the corresponding response
     *
     * @return int|null
     */
   
public function getStatusCode()
    {
        return
$this->response ? $this->response->getStatusCode() : null;
    }

   
/**
     * Get the request ID of the error. This value is only present if a
     * response was received and is not present in the event of a networking
     * error.
     *
     * @return string|null Returns null if no response was received
     */
   
public function getAwsRequestId()
    {
        return
$this->requestId;
    }

   
/**
     * Get the AWS error type.
     *
     * @return string|null Returns null if no response was received
     */
   
public function getAwsErrorType()
    {
        return
$this->errorType;
    }

   
/**
     * Get the AWS error code.
     *
     * @return string|null Returns null if no response was received
     */
   
public function getAwsErrorCode()
    {
        return
$this->errorCode;
    }
}