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

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