Skip to content

refactor(core): introduce unified QueryaDatabaseException hierarchy #1037

Description

@ZhuchkaTriplesix

Summary

Создать типизированную иерархию исключений QueryaDatabaseException для унификации обработки ошибок подключения и запросов между всеми драйверами (PostgreSQL, MySQL, SQLite, MongoDB, Redis, Extensions).

Context

Сейчас каждый драйвер выбрасывает свои низкоуровневые исключения (PostgreSQLSeverityException, MySqlException, MongoDartError, SocketException, StateError). В UI приходится писать разрозненные catch блоки, а пользователь видит технические стектрейсы вместо понятных подсказок по исправлению (например, «Неверный пароль», «Таймаут подключения», «БД не существует»).

Implementation Details

  1. Создать базовый класс исключений:
sealed class QueryaDatabaseException implements Exception {
  final String message;
  final String? detailedExplanation;
  final String? remediationHint;
  final Object? originalError;
  final StackTrace? stackTrace;
  ...
}
class AuthFailedException extends QueryaDatabaseException { ... }
class HostUnreachableException extends QueryaDatabaseException { ... }
class QuerySyntaxException extends QueryaDatabaseException { ... }
class TableNotFoundException extends QueryaDatabaseException { ... }
class LockTimeoutException extends QueryaDatabaseException { ... }
  1. Добавить адаптеры-мапперы в сервисы СУБД (PostgresService, MysqlService, MongoService, RedisService).
  2. Унифицировать отображение ошибок в статус-баре и тостах.

Acceptance Criteria

  • Ошибки подключения и выполнения запросов маппятся в типизированные исключения.
  • Пользователь видит понятные подсказки по устранению проблем (Remediation Hint).
  • Юнит-тесты на маппинг ошибок для всех драйверов.

Activity

added
enhancementNew feature or request
error-handlingTheme parser epic label: error-handling
coreCore library logic and services
connectionsDatabase connections, URI parsing, pools
P2Medium priority / Parity & Refactoring
on Oct 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priority / Parity & RefactoringconnectionsDatabase connections, URI parsing, poolscoreCore library logic and servicesenhancementNew feature or requesterror-handlingTheme parser epic label: error-handling

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions