diff --git a/senju/store_manager.py b/senju/store_manager.py index 493ad29..d55d0c9 100644 --- a/senju/store_manager.py +++ b/senju/store_manager.py @@ -12,13 +12,25 @@ from senju.haiku import DEFAULT_HAIKU, Haiku DEFAULT_DB_PATH: Path = Path("/var/lib/senju.json") +class BadStoreManagerFileError(Exception): + def __init__(self, msg: str, * args: object) -> None: + self.msg = msg + super().__init__(*args) + + def __str__(self) -> str: + return f"Store file is corrupted: {self.msg}" + + class StoreManager: __slots__ = "_db", "logger" _db: TinyDB logger: Logger def __init__(self, path_to_db: Path = DEFAULT_DB_PATH) -> None: - self._db = TinyDB(path_to_db) + try: + self._db = TinyDB(path_to_db) + except Exception as e: + raise BadStoreManagerFileError(f"{e}") self.logger = Logger(__name__) def _query(self, query: QueryImpl) -> list[dict]: