class AppError(Exception): """应用业务异常""" class DecisionError(AppError): """决策服务错误;仅暴露安全摘要及服务端追踪信息""" def __init__( self, message: str, *, kind: str, status: int | None = None, request_id: str | None = None, ): self.kind = kind self.status = status self.request_id = request_id super().__init__(message) class ImportProcessError(AppError): """导入流程异常,保留节点名称和原始异常信息""" def __init__( self, message: str, node_name: str = "", cause: Exception | None = None ): self.node_name = node_name self.cause = cause super().__init__(message) def __str__(self) -> str: parts = [] if self.node_name: parts.append(f"[{self.node_name}]") parts.append(super().__str__()) if self.cause is not None: parts.append(f"(原因: {self.cause})") return " ".join(parts)