claude_sms_test
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# dao/exceptions.py
|
||||
# 数据访问层异常:不依赖 FastAPI,由 main.py 统一注册处理器映射成 HTTP 状态码
|
||||
#
|
||||
# 这样 api 层就不需要 try/except,也不需要 import HTTPException,
|
||||
# 只负责「调用 dao + 组装响应」两件事。
|
||||
|
||||
|
||||
class DaoError(Exception):
|
||||
"""DAO 层异常基类:携带 HTTP 状态码与前端可读的提示信息"""
|
||||
|
||||
status_code = 500
|
||||
|
||||
def __init__(self, detail: str):
|
||||
self.detail = detail
|
||||
super().__init__(detail)
|
||||
|
||||
|
||||
class NotFoundError(DaoError):
|
||||
"""目标记录不存在、已删除,或外键指向的记录不存在 → 404"""
|
||||
|
||||
status_code = 404
|
||||
|
||||
|
||||
class ConflictError(DaoError):
|
||||
"""主键重复、唯一字段冲突、一对一关系重复 → 409"""
|
||||
|
||||
status_code = 409
|
||||
Reference in New Issue
Block a user