Subversion Repositories cheapmusic

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
103 - 1
<?php
2
namespace GuzzleHttp\Promise;
3
 
4
/**
5
 * A special exception that is thrown when waiting on a rejected promise.
6
 *
7
 * The reason value is available via the getReason() method.
8
 */
9
class RejectionException extends \RuntimeException
10
{
11
    /** @var mixed Rejection reason. */
12
    private $reason;
13
 
14
    /**
15
     * @param mixed $reason       Rejection reason.
16
     * @param string $description Optional description
17
     */
18
    public function __construct($reason, $description = null)
19
    {
20
        $this->reason = $reason;
21
 
22
        $message = 'The promise was rejected';
23
 
24
        if ($description) {
25
            $message .= ' with reason: ' . $description;
26
        } elseif (is_string($reason)
27
            || (is_object($reason) && method_exists($reason, '__toString'))
28
        ) {
29
            $message .= ' with reason: ' . $this->reason;
30
        } elseif ($reason instanceof \JsonSerializable) {
31
            $message .= ' with reason: '
32
                . json_encode($this->reason, JSON_PRETTY_PRINT);
33
        }
34
 
35
        parent::__construct($message);
36
    }
37
 
38
    /**
39
     * Returns the rejection reason.
40
     *
41
     * @return mixed
42
     */
43
    public function getReason()
44
    {
45
        return $this->reason;
46
    }
47
}