10.12 Errors and Exceptions

10.12.1 errorcode Module
10.12.2 errors.Error Exception
10.12.3 errors.DataError Exception
10.12.4 errors.DatabaseError Exception
10.12.5 errors.IntegrityError Exception
10.12.6 errors.InterfaceError Exception
10.12.7 errors.InternalError Exception
10.12.8 errors.NotSupportedError Exception
10.12.9 errors.OperationalError Exception
10.12.10 errors.PoolError Exception
10.12.11 errors.ProgrammingError Exception
10.12.12 errors.Warning Exception
10.12.13 errors.custom_error_exception() Function

The mysql.connector.errors module defines exception classes for errors and warnings raised by MySQL Connector/Python. Most classes defined in this module are available when you import mysql.connector.

The exception classes defined in this module mostly follow the Python Database API Specification v2.0 (PEP 249). For some MySQL client or server errors it is not always clear which exception to raise. It is good to discuss whether an error should be reclassified by opening a bug report.

MySQL Server errors are mapped with Python exception based on their SQLSTATE value (see Server Error Codes and Messages). The following table shows the SQLSTATE classes and the exception Connector/Python raises. It is, however, possible to redefine which exception is raised for each server error. The default exception is DatabaseError.

Table 10.1 Mapping of Server Errors to Python Exceptions

SQLSTATE ClassConnector/Python Exception
02DataError
02DataError
07DatabaseError
08OperationalError
0ANotSupportedError
21DataError
22DataError
23IntegrityError
24ProgrammingError
25ProgrammingError
26ProgrammingError
27ProgrammingError
28ProgrammingError
2AProgrammingError
2BDatabaseError
2CProgrammingError
2DDatabaseError
2EDatabaseError
33DatabaseError
34ProgrammingError
35ProgrammingError
37ProgrammingError
3CProgrammingError
3DProgrammingError
3FProgrammingError
40InternalError
42ProgrammingError
44InternalError
HZOperationalError
XAIntegrityError
0KOperationalError
HYDatabaseError