Files
hunjing/backend/app/integrations/sandbox/exceptions.py
T
2026-08-21 16:00:13 +08:00

51 lines
1.5 KiB
Python

"""沙箱客户端异常。错误码遵循契约字典的 API 标准错误码口径。"""
from __future__ import annotations
class SandboxError(Exception):
"""沙箱调用基础异常。"""
def __init__(self, message: str, *, code: str = "sandbox_error") -> None:
super().__init__(message)
self.code = code
self.message = message
def __str__(self) -> str:
return self.message
class SandboxUnavailable(SandboxError):
"""沙箱不可达(网络错误 / 连接超时)。"""
def __init__(self, message: str) -> None:
super().__init__(message, code="sandbox_unavailable")
class SandboxUnauthorized(SandboxError):
"""授权凭证被拒(HTTP 401)。"""
def __init__(self, message: str) -> None:
super().__init__(message, code="sandbox_unauthorized")
class SandboxBadRequest(SandboxError):
"""请求参数错误(HTTP 400)。"""
def __init__(self, message: str) -> None:
super().__init__(message, code="bad_request")
class SandboxExecFailed(SandboxError):
"""沙箱内部执行错误(HTTP 5xx,非 401)。"""
def __init__(self, message: str, *, code: str = "exec_failed") -> None:
super().__init__(message, code=code)
class SandboxNotFound(SandboxError):
"""目标任务不存在或已完成(HTTP 404),例如取消一个未知 trace_id。"""
def __init__(self, message: str) -> None:
super().__init__(message, code="not_found")