1<?php
2
3namespace Doctrine\DBAL;
4
5/**
6 * @psalm-immutable
7 */
8class ConnectionException extends Exception
9{
10    /**
11     * @return ConnectionException
12     */
13    public static function commitFailedRollbackOnly()
14    {
15        return new self('Transaction commit failed because the transaction has been marked for rollback only.');
16    }
17
18    /**
19     * @return ConnectionException
20     */
21    public static function noActiveTransaction()
22    {
23        return new self('There is no active transaction.');
24    }
25
26    /**
27     * @return ConnectionException
28     */
29    public static function savepointsNotSupported()
30    {
31        return new self('Savepoints are not supported by this driver.');
32    }
33
34    /**
35     * @return ConnectionException
36     */
37    public static function mayNotAlterNestedTransactionWithSavepointsInTransaction()
38    {
39        return new self('May not alter the nested transaction with savepoints behavior while a transaction is open.');
40    }
41}
42