48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace GuzzleHttp\Promise;
 | |
| 
 | |
| /**
 | |
|  * A special exception that is thrown when waiting on a rejected promise.
 | |
|  *
 | |
|  * The reason value is available via the getReason() method.
 | |
|  */
 | |
| class RejectionException extends \RuntimeException
 | |
| {
 | |
|     /** @var mixed Rejection reason. */
 | |
|     private $reason;
 | |
| 
 | |
|     /**
 | |
|      * @param mixed $reason       Rejection reason.
 | |
|      * @param string $description Optional description
 | |
|      */
 | |
|     public function __construct($reason, $description = null)
 | |
|     {
 | |
|         $this->reason = $reason;
 | |
| 
 | |
|         $message = 'The promise was rejected';
 | |
| 
 | |
|         if ($description) {
 | |
|             $message .= ' with reason: ' . $description;
 | |
|         } elseif (is_string($reason)
 | |
|             || (is_object($reason) && method_exists($reason, '__toString'))
 | |
|         ) {
 | |
|             $message .= ' with reason: ' . $this->reason;
 | |
|         } elseif ($reason instanceof \JsonSerializable) {
 | |
|             $message .= ' with reason: '
 | |
|                 . json_encode($this->reason, JSON_PRETTY_PRINT);
 | |
|         }
 | |
| 
 | |
|         parent::__construct($message);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Returns the rejection reason.
 | |
|      *
 | |
|      * @return mixed
 | |
|      */
 | |
|     public function getReason()
 | |
|     {
 | |
|         return $this->reason;
 | |
|     }
 | |
| }
 |