Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Doctrine\DBAL\Exception;
4
 
5
use Doctrine\DBAL\Driver\Exception as TheDriverException;
6
use Doctrine\DBAL\Exception;
7
use Doctrine\DBAL\Query;
8
 
9
use function assert;
10
 
11
/**
12
 * Base class for all errors detected in the driver.
13
 *
14
 * @psalm-immutable
15
 */
16
class DriverException extends Exception implements TheDriverException
17
{
18
    /**
19
     * The query that triggered the exception, if any.
20
     */
21
    private ?Query $query;
22
 
23
    /**
24
     * @internal
25
     *
26
     * @param TheDriverException $driverException The DBAL driver exception to chain.
27
     * @param Query|null         $query           The SQL query that triggered the exception, if any.
28
     */
29
    public function __construct(TheDriverException $driverException, ?Query $query)
30
    {
31
        if ($query !== null) {
32
            $message = 'An exception occurred while executing a query: ' . $driverException->getMessage();
33
        } else {
34
            $message = 'An exception occurred in the driver: ' . $driverException->getMessage();
35
        }
36
 
37
        parent::__construct($message, $driverException->getCode(), $driverException);
38
 
39
        $this->query = $query;
40
    }
41
 
42
    /**
43
     * {@inheritDoc}
44
     */
45
    public function getSQLState()
46
    {
47
        $previous = $this->getPrevious();
48
        assert($previous instanceof TheDriverException);
49
 
50
        return $previous->getSQLState();
51
    }
52
 
53
    public function getQuery(): ?Query
54
    {
55
        return $this->query;
56
    }
57
}