melobot.exceptions 源代码

from typing_extensions import TYPE_CHECKING, Self

if TYPE_CHECKING:
    from .adapter.model import ActionHandle


[文档] class BotException(Exception): """bot 异常基类""" def __init__(self, *args: object): super().__init__(self, args) if not len(args): self.err = "" elif len(args) == 1: self.err = str(args[0]) else: self.err = str(args) self.pretty_err = f"[{self.__class__.__module__}.{self.__class__.__qualname__}] {self.err}" def __str__(self) -> str: return self.err
[文档] class UtilError(BotException): """melobot.utils 异常"""
[文档] class UtilValidateError(UtilError): """:py:mod:`melobot.utils` 函数参数验证异常"""
[文档] class BotError(BotException): """melobot bot 异常"""
[文档] class SourceError(BotException): """melobot 源异常"""
[文档] class PluginError(BotException): """melobot 插件异常"""
[文档] class PluginAutoGenError(PluginError): """melobot 插件自动生成异常"""
[文档] class PluginLoadError(PluginError): """melobot 插件加载异常"""
[文档] class PluginIpcError(PluginError): """melobot 插件间通信异常"""
[文档] class ShareObjectCallbackFailed(PluginError): """melobot 共享对象回调失败异常""" def __init__(self, result: object) -> None: self.result = result super().__init__(f"共享对象回调执行失败,结果:{result}")
[文档] class SessionError(BotException): """melobot 会话异常"""
[文档] class SessionStateFailed(SessionError): def __init__(self, cur_state: str, meth: str) -> None: self.cur_state = cur_state super().__init__(f"当前会话状态 {cur_state} 不支持的操作:{meth}")
[文档] class SessionRuleLacked(SessionError): ...
[文档] class FlowError(BotException): """melobot 处理流异常"""
[文档] class LogError(BotException): """melobot 日志器异常"""
[文档] class HookError(BotException): """melobot 生命周期组件异常"""
[文档] class AdapterError(BotException): """melobot 适配器异常"""
[文档] class ActionHandleError(BotException): """melobot 行为操作异常""" def __init__(self, *args: object, handle: "ActionHandle") -> None: super().__init__(*args) self.handle = handle
[文档] class DependError(BotException): """melobot 依赖注入异常"""
[文档] class DependInitError(DependError): """melobot 依赖注入项初始化失败(特定场景下无影响)"""
[文档] class DependResolveFailed(DependError): """melobot 依赖注入解析失败(不可恢复)"""
[文档] class DynImportError(BotException): """melobot 动态导入组件异常""" def __init__(self, *args: object, name: str | None = None, path: str | None = None) -> None: super().__init__(*args) self.args = args self.name = name self.path = path
[文档] class ImportNameConflict(DynImportError): """melobot 动态导入时,命名空间名称冲突""" def __init__(self, *args: object, name: str, path: str) -> None: super().__init__(*args, name=name, path=path) self.name: str self.path: str
[文档] def derive(self, *, name: str, path: str) -> Self: return self.__class__(*self.args, name=name, path=path)
def __str__(self) -> str: return f"{super().__str__()} (本次目标: {self.name!r}, 在以下目录中搜索: {self.path})"
[文档] class ImportSpecEmpty(DynImportError): """melobot 动态导入时,模块的 spec 为空"""