Introduce a "DatabaseException" class for fatal exceptions (used in testmode to throw an exception in case of DB errors)

This commit is contained in:
Philipp 2020-10-06 20:03:38 +02:00
parent 0f3e4255ca
commit 3587e89482
No known key found for this signature in database
GPG key ID: 9A28B7D4FF5667BD
2 changed files with 46 additions and 29 deletions

View file

@ -0,0 +1,39 @@
<?php
declare(strict_types=1);
namespace Friendica\Database;
use Exception;
use Throwable;
/**
* A database fatal exception, which shouldn't occur
*/
class DatabaseException extends Exception
{
protected $query;
/**
* Construct the exception. Note: The message is NOT binary safe.
*
* @link https://php.net/manual/en/exception.construct.php
*
* @param string $message The Database error message.
* @param int $code The Database error code.
* @param string $query The Database error query.
* @param Throwable $previous [optional] The previous throwable used for the exception chaining.
*/
public function __construct(string $message, int $code, string $query, Throwable $previous = null)
{
parent::__construct($message, $code, $previous);
$this->query = $query;
}
/**
* {@inheritDoc}
*/
public function __toString()
{
return sprintf('Database error %d "%s" at "%s"', $this->message, $this->code, $this->query);
}
}