summaryrefslogtreecommitdiff
path: root/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php')
-rw-r--r--vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php94
1 files changed, 94 insertions, 0 deletions
diff --git a/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php b/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php
new file mode 100644
index 0000000..ad0f0e1
--- /dev/null
+++ b/vendor/doctrine/dbal/src/Driver/API/MySQL/ExceptionConverter.php
@@ -0,0 +1,94 @@
1<?php
2
3declare(strict_types=1);
4
5namespace Doctrine\DBAL\Driver\API\MySQL;
6
7use Doctrine\DBAL\Driver\API\ExceptionConverter as ExceptionConverterInterface;
8use Doctrine\DBAL\Driver\Exception;
9use Doctrine\DBAL\Exception\ConnectionException;
10use Doctrine\DBAL\Exception\ConnectionLost;
11use Doctrine\DBAL\Exception\DatabaseDoesNotExist;
12use Doctrine\DBAL\Exception\DeadlockException;
13use Doctrine\DBAL\Exception\DriverException;
14use Doctrine\DBAL\Exception\ForeignKeyConstraintViolationException;
15use Doctrine\DBAL\Exception\InvalidFieldNameException;
16use Doctrine\DBAL\Exception\LockWaitTimeoutException;
17use Doctrine\DBAL\Exception\NonUniqueFieldNameException;
18use Doctrine\DBAL\Exception\NotNullConstraintViolationException;
19use Doctrine\DBAL\Exception\SyntaxErrorException;
20use Doctrine\DBAL\Exception\TableExistsException;
21use Doctrine\DBAL\Exception\TableNotFoundException;
22use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
23use Doctrine\DBAL\Query;
24
25/** @internal */
26final class ExceptionConverter implements ExceptionConverterInterface
27{
28 /**
29 * @link https://dev.mysql.com/doc/mysql-errors/8.0/en/client-error-reference.html
30 * @link https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html
31 */
32 public function convert(Exception $exception, ?Query $query): DriverException
33 {
34 return match ($exception->getCode()) {
35 1008 => new DatabaseDoesNotExist($exception, $query),
36 1213 => new DeadlockException($exception, $query),
37 1205 => new LockWaitTimeoutException($exception, $query),
38 1050 => new TableExistsException($exception, $query),
39 1051,
40 1146 => new TableNotFoundException($exception, $query),
41 1216,
42 1217,
43 1451,
44 1452,
45 1701 => new ForeignKeyConstraintViolationException($exception, $query),
46 1062,
47 1557,
48 1569,
49 1586 => new UniqueConstraintViolationException($exception, $query),
50 1054,
51 1166,
52 1611 => new InvalidFieldNameException($exception, $query),
53 1052,
54 1060,
55 1110 => new NonUniqueFieldNameException($exception, $query),
56 1064,
57 1149,
58 1287,
59 1341,
60 1342,
61 1343,
62 1344,
63 1382,
64 1479,
65 1541,
66 1554,
67 1626 => new SyntaxErrorException($exception, $query),
68 1044,
69 1045,
70 1046,
71 1049,
72 1095,
73 1142,
74 1143,
75 1227,
76 1370,
77 1429,
78 2002,
79 2005,
80 2054 => new ConnectionException($exception, $query),
81 2006,
82 4031 => new ConnectionLost($exception, $query),
83 1048,
84 1121,
85 1138,
86 1171,
87 1252,
88 1263,
89 1364,
90 1566 => new NotNullConstraintViolationException($exception, $query),
91 default => new DriverException($exception, $query),
92 };
93 }
94}