
    lOin                         S r SSKJrJr   " S S\5      r " S S\5      r " S S\5      r " S	 S
\5      r " S S\5      r	 " S S\5      r
g)uO   
自定义异常类

定义应用级别的异常，用于统一错误处理。
    )OptionalDictc                   F   ^  \ rS rSrSrSS\S\S\\   4U 4S jjjr	Sr
U =r$ )	APIException	   u   API异常基类messagecodedetailsc                 \   > Xl         X l        X0l        [        TU ]  U R                   5        g)ud   
初始化异常

Args:
    message: 错误消息
    code: HTTP状态码
    details: 错误详情
N)r   r	   r
   super__init__)selfr   r	   r
   	__class__s       >   /Users/yu22x/Desktop/ddd_副本121/ctf/app/utils/exceptions.pyr   APIException.__init__   s%     	&    )r	   r
   r   )  N)__name__
__module____qualname____firstlineno____doc__strintr   r   r   __static_attributes____classcell__r   s   @r   r   r   	   s)    ' '3 'x~ ' 'r   r   c                   L   ^  \ rS rSrSrSS\S\\   S\\   4U 4S jjjrSr	U =r
$ )	ValidationError   u   验证错误r   fieldr
   c                 4   > [         TU ]  USU5        X l        g )Nr   )r   r   r!   )r   r   r!   r
   r   s       r   r   ValidationError.__init__   s    #w/
r   )r!   )NNr   r   r   r   r   r   r   r   r   r   r   r   s   @r   r   r      s.     HSM 8TX>  r   r   c                   B   ^  \ rS rSrSrSS\S\\   4U 4S jjjrSr	U =r
$ )NotFoundError#   u   资源不存在错误r   r
   c                 (   > [         TU ]  USU5        g )Ni  r   r   r   r   r
   r   s      r   r   NotFoundError.__init__&       #w/r    )u   资源不存在Nr$   r   s   @r   r&   r&   #   s"    0 0(4. 0 0r   r&   c                   B   ^  \ rS rSrSrSS\S\\   4U 4S jjjrSr	U =r
$ )UnauthorizedError*   u   未授权错误r   r
   c                 (   > [         TU ]  USU5        g )Ni  r)   r*   s      r   r   UnauthorizedError.__init__-   r,   r   r-   )u   请先登录Nr$   r   s   @r   r/   r/   *   s"    0 0x~ 0 0r   r/   c                   B   ^  \ rS rSrSrSS\S\\   4U 4S jjjrSr	U =r
$ )ForbiddenError1   u   权限不足错误r   r
   c                 (   > [         TU ]  USU5        g )Ni  r)   r*   s      r   r   ForbiddenError.__init__4   r,   r   r-   )u   权限不足Nr$   r   s   @r   r4   r4   1   s"    0 0x~ 0 0r   r4   c                   B   ^  \ rS rSrSrSS\S\\   4U 4S jjjrSr	U =r
$ )ServerError8   u   服务器错误r   r
   c                 (   > [         TU ]  USU5        g )Ni  r)   r*   s      r   r   ServerError.__init__;   r,   r   r-   )u   服务器内部错误Nr$   r   s   @r   r9   r9   8   s#    0 0QU 0 0r   r9   N)r   typingr   r   	Exceptionr   r   r&   r/   r4   r9   r-   r   r   <module>r?      sW   
 "'9 '$l 0L 00 00\ 00, 0r   