浏览代码

Refactor exception family for better utility elsewhere

Getty Ritter 4 年之前
父节点
当前提交
dc4f7d917d
共有 1 个文件被更改,包括 18 次插入1 次删除
  1. 18 1
      lc/error.py

+ 18 - 1
lc/error.py

@@ -1,9 +1,26 @@
 from dataclasses import dataclass
 
+class LCException(Exception):
+    def to_json(self) -> dict:
+        return {"error": str(self)}
 
 @dataclass
-class UserExists(Exception):
+class UserExists(LCException):
     name: str
 
     def __str__(self):
         return f"A user named {self.name} already exists."
+
+@dataclass
+class NoSuchUser(LCException):
+    name: str
+
+    def __str__(self):
+        return f"No user named {self.name} exists."
+
+@dataclass
+class BadPassword(LCException):
+    name: str
+
+    def __str__(self):
+        return f"Wrong password for user {self.name}."