1<?php
2declare(strict_types = 1);
3
4namespace TYPO3\CMS\Core\Database\Schema\Exception;
5
6/*
7 * This file is part of the TYPO3 CMS project.
8 *
9 * It is free software; you can redistribute it and/or modify it under
10 * the terms of the GNU General Public License, either version 2
11 * of the License, or any later version.
12 *
13 * For the full copyright and license information, please read the
14 * LICENSE.txt file that was distributed with this source code.
15 *
16 * The TYPO3 project - inspiring people to share!
17 */
18
19/**
20 * Class StatementException
21 */
22class StatementException extends \Exception
23{
24    /**
25     * @param string $sql
26     *
27     * @return StatementException
28     */
29    public static function sqlError(string $sql): StatementException
30    {
31        return new self($sql, 1471504820);
32    }
33
34    /**
35     * @param string $message
36     * @param \Exception|null $previous
37     *
38     * @return StatementException
39     */
40    public static function syntaxError(string $message, \Exception $previous = null): StatementException
41    {
42        return new self('[SQL Error] ' . $message, 1471504821, $previous);
43    }
44
45    /**
46     * @param string $message
47     * @param \Exception|null $previous
48     *
49     * @return StatementException
50     */
51    public static function semanticalError(string $message, \Exception $previous = null): StatementException
52    {
53        return new self('[Semantical Error] ' . $message, 1471504822, $previous);
54    }
55}
56