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.     private ?Query $query;
  18.     /**
  19.      * @internal
  20.      *
  21.      * @param TheDriverException $driverException The DBAL driver exception to chain.
  22.      * @param Query|null         $query           The SQL query that triggered the exception, if any.
  23.      */
  24.     public function __construct(TheDriverException $driverException, ?Query $query)
  25.     {
  26.         if ($query !== null) {
  27.             $message 'An exception occurred while executing a query: ' $driverException->getMessage();
  28.         } else {
  29.             $message 'An exception occurred in the driver: ' $driverException->getMessage();
  30.         }
  31.         parent::__construct($message$driverException->getCode(), $driverException);
  32.         $this->query $query;
  33.     }
  34.     /**
  35.      * {@inheritDoc}
  36.      */
  37.     public function getSQLState()
  38.     {
  39.         $previous $this->getPrevious();
  40.         assert($previous instanceof TheDriverException);
  41.         return $previous->getSQLState();
  42.     }
  43.     public function getQuery(): ?Query
  44.     {
  45.         return $this->query;
  46.     }
  47. }