40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
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)
|