@stof The purpose of my suggestion is to have a consistent API for exceptions coming from the driver and to move the responsibility of retrieving/converting error codes to that class as it feels more natural having it there instead of in the driver itself. Furthermore not all of the driver exception classes actually provide the SQLSTATE via `getCode` (see for example the `SQLSrvException` or `DB2Exception`). They have to be refactored anyways. Moreover introducing a new driver exception interface does not mean every driver exception is wrapped once again. The existing ones would just have to implement that interface. Besides that the current driver exception implementations are inconsistent anyways as some extend `\Exception` and others extend `DBALException`.