Skip to main content
Version: Next

nonebot.exception

本模块包含了所有 NoneBot 运行时可能会抛出的异常。

这些异常并非所有需要用户处理,在 NoneBot 内部运行时被捕获,并进行对应操作。

NoneBotException
├── ParserExit
├── ProcessException
| ├── IgnoredException
| ├── SkippedException
| | └── TypeMisMatch
| ├── MockApiException
| └── StopPropagation
├── MatcherException
| ├── PausedException
| ├── RejectedException
| └── FinishedException
├── AdapterException
| ├── NoLogException
| ├── ApiNotAvailable
| ├── NetworkError
| └── ActionFailed
└── DriverException
└── WebSocketClosed

class NoneBotException(<auto>)

  • 说明: 所有 NoneBot 发生的异常基类。

  • 参数

    auto

class ParserExit(<auto>)

  • 说明: 处理消息失败时返回的异常。

  • 参数

    auto

class ProcessException(<auto>)

  • 说明: 事件处理过程中发生的异常基类。

  • 参数

    auto

class IgnoredException(<auto>)

  • 说明: 指示 NoneBot 应该忽略该事件。可由 PreProcessor 抛出。

  • 参数

    • reason: 忽略事件的原因

class SkippedException(<auto>)

  • 说明

    指示 NoneBot 立即结束当前 Dependent 的运行。

    例如,可以在 Handler 中通过 Matcher.skip 抛出。

  • 参数

    auto

  • 用法

    def always_skip():
    Matcher.skip()

    @matcher.handle()
    async def handler(dependency = Depends(always_skip)):
    # never run

class TypeMisMatch(<auto>)

  • 说明: 当前 Handler 的参数类型不匹配。

  • 参数

    auto

class MockApiException(<auto>)

  • 说明: 指示 NoneBot 阻止本次 API 调用或修改本次调用返回值,并返回自定义内容。 可由 api hook 抛出。

  • 参数

    • result: 返回的内容

class StopPropagation(<auto>)

  • 说明

    指示 NoneBot 终止事件向下层传播。

    Matcher.blockTrue 或使用 Matcher.stop_propagation 方法时抛出。

  • 参数

    auto

  • 用法

    matcher = on_notice(block=True)
    # 或者
    @matcher.handle()
    async def handler(matcher: Matcher):
    matcher.stop_propagation()

class MatcherException(<auto>)

  • 说明: 所有 Matcher 发生的异常基类。

  • 参数

    auto

class PausedException(<auto>)

  • 说明

    指示 NoneBot 结束当前 Handler 并等待下一条消息后继续下一个 Handler。 可用于用户输入新信息。

    可以在 Handler 中通过 Matcher.pause 抛出。

  • 参数

    auto

  • 用法

    @matcher.handle()
    async def handler():
    await matcher.pause("some message")

class RejectedException(<auto>)

  • 说明

    指示 NoneBot 结束当前 Handler 并等待下一条消息后重新运行当前 Handler。 可用于用户重新输入。

    可以在 Handler 中通过 Matcher.reject 抛出。

  • 参数

    auto

  • 用法

    @matcher.handle()
    async def handler():
    await matcher.reject("some message")

class FinishedException(<auto>)

  • 说明

    指示 NoneBot 结束当前 Handler 且后续 Handler 不再被运行。可用于结束用户会话。

    可以在 Handler 中通过 Matcher.finish 抛出。

  • 参数

    auto

  • 用法

    @matcher.handle()
    async def handler():
    await matcher.finish("some message")

class AdapterException(<auto>)

  • 说明: 代表 Adapter 抛出的异常,所有的 Adapter 都要在内部继承自这个 Exception

  • 参数

    • adapter_name: 标识 adapter

class NoLogException(<auto>)

  • 说明

    指示 NoneBot 对当前 Event 进行处理但不显示 Log 信息。

    可在 Event.get_log_string 时抛出

  • 参数

    auto

class ApiNotAvailable(<auto>)

  • 说明: 在 API 连接不可用时抛出。

  • 参数

    auto

class NetworkError(<auto>)

  • 说明: 在网络出现问题时抛出, 如: API 请求地址不正确, API 请求无返回或返回状态非正常等。

  • 参数

    auto

class ActionFailed(<auto>)

  • 说明: API 请求成功返回数据,但 API 操作失败。

  • 参数

    auto

class DriverException(<auto>)

  • 说明: Driver 抛出的异常基类。

  • 参数

    auto

class WebSocketClosed(<auto>)

  • 说明: WebSocket 连接已关闭。

  • 参数

    auto