Proyectos de Subversion Moodle

Rev

Rev 1 | | Comparar con el anterior | Ultima modificación | Ver Log |

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