vendor/doctrine/dbal/src/Exception/DriverException.php line 16

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