class DatabaseError(Exception): # Inspired by OSError which also uses errno's # It's a better approach than using a class for each error UNKNOWN_ERROR = -1 CONNECTION_ERROR = 1 EMPTY_CONFIG = 2 DUPLICATE_ENTRY = 3 def __init__(self, message: str, errno: int, **kwargs): super().__init__(message) self.message = message self.errno = errno for key, value in kwargs.items(): setattr(self, key, value) __all__ = ["DatabaseError"]