nonebot.exception
本模块包含了所有 NoneBot 运行时可能会抛出的异常。
这些异常并非所有需要用户处理,在 NoneBot 内部运行时被捕获,并进行对应操作。
NoneBotException
├── ParserExit
├── ProcessException
| ├── IgnoredException
| ├── MockApiException
| └── StopPropagation
├── MatcherException
| ├── SkippedException
| | └── TypeMisMatch
| ├── PausedException
| ├── RejectedException
| └── FinishedException
├── AdapterException
| ├── NoLogException
| ├── ApiNotAvailable
| ├── NetworkError
| └── ActionFailed
└── DriverException
└── WebSocketClosed
class NoneBotException()
说明
所有 NoneBot 发生的异常基类。
class ParserExit(status=0, message=None)
说明
shell_command 处理消息失败时返回的异常
参数
status
(int)message
(str | None)
class ProcessException()
说明
事件处理过程中发生的异常基类。
class IgnoredException(reason)
说明
指示 NoneBot 应该忽略该事件。可由 PreProcessor 抛出。
参数
reason
(Any): 忽略事件的原因
class MockApiException(result)
说明
指示 NoneBot 阻止本次 API 调用或修改本次调用返回值,并返回自定义内容。可由 api hook 抛出。
参数
result
(Any): 返回的内容
class StopPropagation()
说明
指示 NoneBot 终止事件向下层传播。
在 {ref}
nonebot.matcher.Matcher.block
为True
或使用 Matcher.stop_propagation 方法时抛出。用法
matcher = on_notice(block=True)
# 或者
@matcher.handle()
async def handler(matcher: Matcher):
matcher.stop_propagation()
class MatcherException()
说明
所有 Matcher 发生的异常基类。
class SkippedException()
说明
指示 NoneBot 立即结束当前
Handler
的处理,继续处理下一个Handler
。可以在
Handler
中通过 Matcher.skip 抛出。用法
def always_skip():
Matcher.skip()
@matcher.handle()
async def handler(dependency = Depends(always_skip)):
...
class TypeMisMatch(param, value)
说明
当前
Handler
的参数类型不匹配。参数
param
(pydantic.fields.ModelField)value
(Any)
class PausedException()
说明
指示 NoneBot 结束当前
Handler
并等待下一条消息后继续下一个Handler
。可用于用户输入新信息。可以在
Handler
中通过 Matcher.pause 抛出。用法
@matcher.handle()
async def handler():
await matcher.pause("some message")
class RejectedException()
说明
指示 NoneBot 结束当前
Handler
并等待下一条消息后重新运行当前Handler
。可用于用户重新输入。可以在
Handler
中通过 Matcher.reject 抛出。用法
@matcher.handle()
async def handler():
await matcher.reject("some message")
class FinishedException()
说明
指示 NoneBot 结束当前
Handler
且后续Handler
不再被运行。可用于结束用户会话。可以在
Handler
中通过 Matcher.finish 抛出。用法
@matcher.handle()
async def handler():
await matcher.finish("some message")
class AdapterException(adapter_name)
说明
代表
Adapter
抛出的异常,所有的Adapter
都要在内部继承自这个Exception
参数
adapter_name
(str): 标识 adapter
class NoLogException(adapter_name)
说明
指示 NoneBot 对当前
Event
进行处理但不显示 Log 信息。可在 Event.get_log_string 时抛出
参数
adapter_name
(str)
class ApiNotAvailable(adapter_name)
说明
在 API 连接不可用时抛出。
参数
adapter_name
(str)
class NetworkError(adapter_name)
说明
在网络出现问题时抛出,如: API 请求地址不正确, API 请求无返回或返回状态非正常等。
参数
adapter_name
(str)
class ActionFailed(adapter_name)
说明
API 请求成功返回数据,但 API 操作失败。
参数
adapter_name
(str)
class DriverException()
说明
Driver
抛出的异常基类
class WebSocketClosed(code, reason=None)
说明
WebSocket 连接已关闭
参数
code
(int)reason
(str | None)