db->lastErrorCode(), $this->db->lastErrorMsg()); } public static function buildEngineException($code, string $msg): array { switch ($code) { case Driver::SQLITE_BUSY: return [ExceptionTimeout::class, 'general', $msg]; case Driver::SQLITE_SCHEMA: return [ExceptionRetry::class, 'schemaChange', $msg]; case Driver::SQLITE_CONSTRAINT: return [ExceptionInput::class, 'engineConstraintViolation', $msg]; case Driver::SQLITE_MISMATCH: return [ExceptionInput::class, 'engineTypeViolation', $msg]; default: return [Exception::class, 'engineErrorGeneral', $msg]; } } }