31 lines
889 B
Python
31 lines
889 B
Python
"""司命异常。错误码映射契约字典 API 标准错误码。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
class SafetyError(Exception):
|
|
"""司命决策异常基类。"""
|
|
|
|
def __init__(self, code: str, message: str) -> None:
|
|
super().__init__(message)
|
|
self.code = code
|
|
self.message = message
|
|
|
|
def __str__(self) -> str:
|
|
return self.message
|
|
|
|
|
|
class PermissionDenied(SafetyError):
|
|
"""动作被司命拒绝(映射 permission_denied)。"""
|
|
|
|
def __init__(self, message: str) -> None:
|
|
super().__init__("permission_denied", message)
|
|
|
|
|
|
class RequiresConfirmation(SafetyError):
|
|
"""高风险动作需用户确认(映射 requires_confirmation)。"""
|
|
|
|
def __init__(self, message: str, *, risk_level: str | None = None) -> None:
|
|
super().__init__("requires_confirmation", message)
|
|
self.risk_level = risk_level
|